使用 python 網頁爬蟲,除了需要注意 python 版本【2.x 或是 3.x】,還要注意 module 是否安裝,以及 module 的版本是否正確,不然,就會出現錯誤訊息…
以這個例子來看,python版本不對,source code 是 3.x 版,系統的 python 只有 2.x 版,還有,相關的 python module 也沒安裝…
到 https://hub.docker.com 找一下現成的 Docker images
docker search pandas
這裡以【gwidx/pandas-python:latest】為例:
它是 Debian 8.x + python 3.x + pip 8.x
docker pull gwidx/pandas-python:latest
先安裝 vi,等一下用來編輯 python script
docker run -i -t gwidx/pandas-python bash
apt-get update
apt-get install vim -y
更新 pip
pip install –upgrade pip
安裝其他相關 module
pip install beautifulsoup4
pip install html5lib
pip install lxml
pip install numpy
pip install python-dateutil
pip install pytz
pip install six
移除 pandas 0.18.x,安裝 pandas 0.21.x
pip uninstall pandas -y
pip install pandas
執行 python 爬蟲,抓臺灣銀行的外匯
python /usr/src/app/currency.py
python script 如下:
#-*- coding: utf-8 -*- currency=data[0] currency.columns=[u’幣別’,u’現金匯率-本行買入’,u’現金匯率-本行賣出’,u’即期匯率-本行買入’,u’即期匯率-本行賣出’] currency[u’幣別’]=currency[u’幣別’].str.extract(‘\((\w+)\)’) |
環境都確定無誤,準備要客製化 Docker image
先確認 container 的名稱,剛剛沒有指定,docker 會自動 assing
docker ps -a
先 commit 一個新的 image
docker commit -m “Python3 + pandas" thirsty_morse9 python3_pandas
【thirsty_morse9】是 container 的名稱
【python3_pandas】是新的 image 的名稱
將 image 匯出成檔案
docker save –output=/root/python3_pandas.tar python3_pandas
【/root/python3_pandas.tar】是指定匯出的檔案名稱
【python3_pandas】是哪一個 image 需要匯出
最後再 zip 壓縮
gzip /root/python3_pandas.tar
要將這個客製化的 Docker image 上傳到 https://hub.docker.com/ 當然是可以,這裡先離線方式使用,另外找台機器【server1】測試…
docker load -i /root/python3_pandas.tar.gz
看看是不是直接就可以 python 網頁爬蟲,擷取最新的台灣銀行外匯資料…
docker run -i -t python3_pandas:latest python ./currency.py
在【server1】這台全新的機器,只需要匯入客製化過後的 Docker image,立馬就可以 python 爬蟲擷取網頁,Docker 的確是應用程式開發/部屬/測試 非常好用的工具!