用crontab定时执行scrapy任务

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。下面是简单使用crontab进行定时循环执行scrapy爬虫的操作:

  1. 安装crontab
    yum install crontab

  2. 编辑crontab服务文件
    crontab -e
    (其他参数:-u 指定用户下的crontab; -r 删除; -l 查看crontab工程目录; -i 有提示的删除)

  3. 在crontab文件中添加命令以爬取name为ACW1的爬虫
    * * * * * cd /home/hyj/kids && scrapy crawl ACW1 -o ACW1.json
    (更多写法参照https://www.cnblogs.com/longjshz/p/5779215.html)

实现了每分钟执行一次爬虫。在爬虫比较多时,可以采用shell脚本集中管理。若爬虫运行时间较长,可结合scrapy jobs进行暂停爬取,之后再恢复运行

遇到的问题:如果直接在crontab -e中输入* * * * * scrapy crawl xxx,定时任务是不会生效的,因为我们不知道crontab执行时,其所处的目录,很有可能就没有scrapy命令和crawl命令。因此,书写如下crontab的指令:* * * * * cd /home/hyj/kids && scrapy crawl ACW1,就可以正常的执行定时任务了。

  1. 查看crontab历史执行情况
    默认情况下,crontab中执行的日志写在/var/log下。可通过以下指令在root权限下访问:
    tail –f /var/log/cron
    用crontab定时执行scrapy任务_第1张图片
    crontab日志

你可能感兴趣的:(用crontab定时执行scrapy任务)