docker環境定時啟動selenium爬蟲抓取資料

今天要說明的是在環境沒有安裝python selenium的情況底下,如何透過定時啟動docker的方式來啟動爬蟲抓取資料

環境準備 :

環境的部分,一定要安裝docker,還不知道怎麼安裝可以參考

MAC安裝Docker

當然,一般來說伺服器的環境是在Linux底下,也可以參考

How to Install Docker On Ubuntu 18.04

接著,我們在python 2.7的docker環境下安裝所需要的套件,Dockerfile如下,

也可以直接從我的docker hub上拉下來

https://hub.docker.com/r/virtualorz/python_selenium

 

可執行SH檔 :

環境準備好了,下一個步驟就是要準備一個可以讓linux定期叫起來執行的sh檔

這個檔案就是啟動docker並且執行我們要的python程式,這樣子而已

OK,我逐行來說明一下

1. 跳到我們存放python程式的資料夾,因為我們要直接把這個資料夾掛進docker的WORKDIR

2. 移除掉python_selenium這個容易,當然名字會因為docker run –name設定不同而不同

3. 透過docker run 把virtualorz/python_selenium給容器化叫起來,並且

-w : 設定WORKDIR為 /usr/workspace

-v : 將當前目錄 $(pwd),掛載到容器的 /usr/workspace,這就是為什麼第一行要先切換到儲存python程式的資料夾原因

python getEP.py : 這邊是給容器起來之後的程式命令,命令他去執行 “python getEP.py”也就會執行我們要的爬蟲了

這邊是利用docker執行的特性,一般我們執行docker run 都會在後面接上bash ,讓他停在bash上等

而這邊直接讓他執行python,執行完畢後容器就會被關閉,也就是第二行的先移除上次執行的容器

 

crontab 排程 :

最後,交給linux crontab排程,假設我們要每分鐘都執行

使用crontab -e 來編輯,請bash來叫起剛剛我們寫好的.sh檔就行了

 

這樣一來我們就可以透過crontab 設定多久的時間需要排程執行python爬蟲,原理就是透過docker叫起容器執行完畢後會自行關閉