1. 程式人生 > >在mac下用crontab來定時執行scrapy爬蟲命令

在mac下用crontab來定時執行scrapy爬蟲命令

Crontab這個命令是在linux下來執行定時執行任務的指令,但是在mac下同樣用這一指令來實現定時執行任務。但是在用到scrapy爬蟲的時候,會有兩個比較常見的問題導致定時爬取不成功,接下來將詳細介紹如何在mac下執行crontab指令來完成相關定時任務。

一、啟動crontab -e來編輯自己定義的任務

例如我想在每天的17:30分來定時執行此任務,那麼相關的配置符合條件的命令為:

30 17 * * *,具體的定義自己的命令可以參考http://www.jb51.net/LINUXjishu/19905.html

手動執行時,在工程目錄下輸入scrapy crawl xxx可以執行指令碼了,但是用crontab時,如果直接在crontab -e中輸入30 17 * * * scrapy crawl xxx,則定時任務不會生效,因為不知道crontab執行時,其所處的目錄,很有可能就沒有scrapy命令了。

二、解決此問題之道

為了解決這個問題,嘗試用30 17 * * * /usr/local/bin/scrapy crawl xxx,但是加了這個指令貌似可以解決不生效的問題,但是又有新的問題了,即找不到crawl命令,在不同的路徑下scrapy後面跟的命令不一樣,只有在scrapy工程目錄下才會有crawl命令,因此,需要先進入到工程目錄下再執行啟動命令,因此,書寫如下crontab的指令:30 17 * * * cd /users/sunwangdong/desktop/tsinghua && /usr/local/bin/scrapy crawl xxx,這樣就能夠正確執行定時指令了