用Raspberry Pi寫Python網路爬蟲 — (1)環境準備

Boyie Chen
5 min readJul 22, 2020

--

動機

近日用Mac爬取新聞,感到不便之處便是要讓唯一的筆電長時間運作,而且為了避免爬蟲中斷,不能移動筆電。於是乎萌生起用樹莓派這台迷你電腦爬蟲的想法。而寫下這篇medium旨在做筆記,同時把這些工作流程內劃下來,希望接續著寫也會寫到爬蟲教學的部分。

目前手邊有:

  1. 多年前購買的Raspberry Pi 2B
  2. Macbook Pro 2015

理想的工作狀況便是將負擔不大但耗時的爬蟲工作丟給樹莓派做,然後筆電該做什麼就做什麼。

前置作業

  1. SSH跟VNC等連線設置
  2. 安裝miniconda, python3.6跟jupyterlab
  3. 安裝足夠的網路爬蟲套件如BeautifulSoup

連線到Pi

首先需要透過ssh連線到pi,一來不需額外的顯示器,也無須再添滑鼠、鍵盤,用一台主機,兩邊寫code(其實是兩邊都是滿滿的bug要處理QQ)

此部分主要參考這個YT影片,步驟大致紀錄如下:

  1. Mac端安裝VNC Viewer
  2. 在pi上的terminal輸入:ifconfig 查看ip位址(這部分需要顯示器及鍵盤、滑鼠,若無則需另外在派的micro sd卡中新增開機即以ssh連線的相關檔案)
  3. 在pi上許可ssh連線及vnc
  4. 透過terminal連線到pi
ssh pi@xxx.xxx.xxx.xxx

5. 透過VNC軟體的話只要給定(2.)中的ip位置跟password就好了

幫Pi安裝Python環境

這部分主要參考:

  1. 安裝miniconda:
    https://stackoverflow.com/questions/39371772/how-to-install-anaconda-on-raspberry-pi-3-model-b
  2. 安裝jupyter lab:
    https://lingshunlab.com/raspberry-pi-install-jupyter-lab.html

miniconda

基本上都在pi上的terminal執行以下的指令即可

wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh
sudo md5sum Miniconda3-latest-Linux-armv7l.sh
sudo /bin/bash Miniconda3-latest-Linux-armv7l.sh
conda install python=3.6 #部屬3.6的環境

Jupyter Notebook / Jupyter Lab

因為在Mac上都是用Jupyter Lab寫python,所以也想把壞習慣帶到pi上xD

pip3 install jupyterlab

然後要建立新文件:

jupyter notebook --generate-config
nano /home/pi/.jupyter/jupyter_notebook_config.py

修改其內容:

  • c.NotebookApp.allow_origin = ‘*’ #allow all origins
  • c.NotebookApp.ip = ‘0.0.0.0’ # listen on all IPs

IP設置為0.0.0.0代表可以透過Macbook本機的瀏覽器來連線到pi上寫程式(事實遠不止此,是任何知道了pi的IP位址的終端,都可以連到pi上),當然編譯的速度是取決於pi的性能,不過我的目的本來就只是在mac上寫程式,但有個小分身(也就是pi)避免主力筆電分身乏術而已。

當然,我們也可以為在打開notebook時加上密碼:

jupyter notebook password

開始在pi上寫程式

現在,只要在pi的terminal上輸入:

jupyter lab
#或
jupyter notebook

就會跳出瀏覽器,並執行jupyter notebook介面,可以開始寫程式囉!
當然,改用:

http://<your-ip-address>:8888

就可以在Mac上做一樣的事了

安裝套件

安純地在pi的terminal上執行如:

pip3 install --upgrade pip
pip3 install pandas

的指令就好,注意不要使用到如pip的舊指令,會出現如

Running setup.py bdist_wheel for pandas …

的神秘狀況,卡非常久都不會動QQ

檢查Python版本

當然,在mac上用safari連線到pi上的jupyter notebook後,一切都跟平常很像啦!

--

--