用Raspberry Pi寫Python網路爬蟲 — (1)環境準備
動機
近日用Mac爬取新聞,感到不便之處便是要讓唯一的筆電長時間運作,而且為了避免爬蟲中斷,不能移動筆電。於是乎萌生起用樹莓派這台迷你電腦爬蟲的想法。而寫下這篇medium旨在做筆記,同時把這些工作流程內劃下來,希望接續著寫也會寫到爬蟲教學的部分。
目前手邊有:
- 多年前購買的Raspberry Pi 2B
- Macbook Pro 2015
理想的工作狀況便是將負擔不大但耗時的爬蟲工作丟給樹莓派做,然後筆電該做什麼就做什麼。
前置作業
- SSH跟VNC等連線設置
- 安裝miniconda, python3.6跟jupyterlab
- 安裝足夠的網路爬蟲套件如BeautifulSoup
連線到Pi
首先需要透過ssh連線到pi,一來不需額外的顯示器,也無須再添滑鼠、鍵盤,用一台主機,兩邊寫code(其實是兩邊都是滿滿的bug要處理QQ)
此部分主要參考這個YT影片,步驟大致紀錄如下:
- Mac端安裝VNC Viewer
- 在pi上的terminal輸入:ifconfig 查看ip位址(這部分需要顯示器及鍵盤、滑鼠,若無則需另外在派的micro sd卡中新增開機即以ssh連線的相關檔案)
- 在pi上許可ssh連線及vnc
- 透過terminal連線到pi
ssh pi@xxx.xxx.xxx.xxx
5. 透過VNC軟體的話只要給定(2.)中的ip位置跟password就好了
幫Pi安裝Python環境
這部分主要參考:
- 安裝miniconda:
https://stackoverflow.com/questions/39371772/how-to-install-anaconda-on-raspberry-pi-3-model-b - 安裝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.shconda 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後,一切都跟平常很像啦!