Linux上使用crontab命令完成定時(shí)爬蟲

本文主要記錄: 1、crontab的用法。
? ? ? ? ? ? ? ? ? ? ? ? ? 2、crontab與scrapy的結(jié)合。

一、crontab

  • crontab是什么
    ? ? ? ?Linux crontab是用來定期執(zhí)行程序的命令。

  • crontab常用命令
    ? ? ? ?1、crontab -l : 列出當(dāng)前的定時(shí)任務(wù)列表
    ? ? ? ?2、crontab -e : 執(zhí)行編輯器來設(shè)定時(shí)任務(wù)

  • 定時(shí)任務(wù)設(shè)置格式
    ? ? ? ?格式:[分] [時(shí)] [日] [月] [周] [執(zhí)行的操作]
    ? ? ? ?例:00 19 * * * python /root/spider/test.py 每天19:00執(zhí)行python /root/spider/test.py 注意一定要是絕對(duì)路徑

    圖摘自思否

常用符號(hào):

  • 星號(hào)(*):代表所有可能的值,如month字段為星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。

  • 逗號(hào)(,):可以用逗號(hào)隔開的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”

  • 中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”

  • 正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每兩小時(shí)執(zhí)行一次。

以下是幾個(gè)例子

? ? ? ?1、每分鐘執(zhí)行一次: * * * * * command

? ? ? ?2、每一小時(shí)執(zhí)行一次 :00 * * * * command(精確時(shí)間點(diǎn)) or * */1 * * * command ( / 表示頻率)

? ? ? ?3、每小時(shí)的15和30分各執(zhí)行一次 15,45 * * * * command(, 表示并列)

? ? ? ?4、在每天上午 8- 11時(shí)中間每小時(shí) 15 ,45分各執(zhí)行一次:15,45 8-11 * * * command (- 表示范圍)

? ? ? ?5、每個(gè)星期一的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行:3,15 8-11 * * 1 command

? ? ? ?6、每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行:3,15 8-11 */2 * * command

二、crontab與scrapy的結(jié)合

? ? ? ?通常運(yùn)行scrapy需要進(jìn)入到該scrapy項(xiàng)目的文件夾下,所以我們不能直接scrapy crawl ……。

例如我需要每天19:00運(yùn)行我部署的某天氣網(wǎng)站的scrapy爬蟲,名為chinaweather:

? ? ? ?1、我們需要先 cd 進(jìn)入到該scrapy項(xiàng)目的路徑下

? ? ? ?2、對(duì)于scrapy需要使用絕對(duì)路徑,如果找不到,可以使用which scrapy找到如:/usr/local/anaconda/bin/scrapy。

? ? ? ?3、這個(gè)scrapy運(yùn)行的時(shí)候會(huì)打印一些日志,我們用>>可以把它統(tǒng)一追加到一個(gè)文件中,方便檢查scrapy是否正常運(yùn)行。 (需要注意的是>是覆蓋重寫,>>是追加操作)

? ? ? ?使用crontab -e 編輯后,即可添加到定時(shí)任務(wù)中:
00 19 * * * cd /root/spider/weather && /usr/local/anaconda/bin/scrapy crawl chinaweather >> /root/spider/weather/weather_history.log

? ? ? ?最后保存退出,就會(huì)顯示任命了新的定時(shí)任務(wù):


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容