Ubuntu利用crontab定期執行scrapy spider
安裝scrapy
pip3 install scrapy #安裝scrapy
並將scrapy安裝在虛擬環境中,避免package之間互相排擠
scrapy爬蟲 & shell撰寫
在專案資料夾中執行:
scrapy crawl your_project_name # 開始執行
確認以上爬蟲和以下執行shell都可以正常運作之後
#!/bin/bash
cd /home/xxx/project #你的爬蟲目錄
scrapy crawl myspider #執行scrapy
sh /xxx/xxx/xx.sh #執行shell
開始加入crontab進行排程,會發現爬蟲無法正常運作。因為crontab不知道scrapy的路徑,因此須找出scrapy的路徑,並在原先腳本中的scrapy crawl myspider前加上
whereis scrapy # 查找scrapy路徑
#!/bin/bash
#我的最終shell
source scrapy/bin/activate # 啟動虛擬環境
cd /home/xxx/project #返回我的爬蟲目錄
/home/ubuntu/scrapy/bin/scrapy crawl myspider #在這裡加上scrapy路徑
deactivate # 結束虛擬環境
crontab排程
crontab -e # 寫新的process
## ubuntu shell的路徑是用/bin/bash
## 標明project的絕對路徑
0 22 * * * /bin/bash /home/ubuntu/xxx/project # 每天晚上十點執行一次
相關crontab撰寫可參考: crontab guru
參考資料
ubuntu打开crontab日志及不执行常见原因 >>這篇真的很推薦閱讀!