爬虫的定时执行

  1. 爬虫的定时及自动执行
    1. 定时任务的书写格式
    2. 1、普通爬虫
      1. 解释:
    3. 2、框架爬虫

爬虫的定时及自动执行

这里主要介绍使用 Linux 中自带的「crontab」命令完成定时任务。

这里常使用的命令是:

  • crontab -e:进入编辑模式,里面写入定时任务。
  • crontab -l:进入阅览模式,查看里面的内容。

定时任务的书写格式

1、普通爬虫

# 爬虫程序 spider.py
def main():
    #爬虫程序体
    pass

if __name__=='__main__':
    main()

此时,crontab -e进入编辑模式,书写格式为:

[分] [时] [日] [月] [周] 命令

例如写入:00 21 * * * python3 /home/ubuntu/python_works/spider.py >> /home/ubuntu/python_works/run.log

上面的意思是每天 21 点 00 分使用 python3 命令执行指定路径下的 spider.py 文件,并输出日志到指定文件。

解释:

(1)上面的 * 是通配符。代表任意值,类似的还有:

逗号(,):指定一个列表范围,例如,「00 12,21,00 * * *」代表每 12,21,00 点执行一次。

中杠(-):指定整数之间的范围,例如,「00 12-19 * * *」代表 12-19 点之间每隔一小时执行一次。

斜杠(/):指定时间的间隔频率,例如,「00 12-22/2 * * *」代表 12-22 点之间每隔 2 小时执行一次。

(2)>>意思是将 py 文件中 print 输出内容保存在指定文件里,以追加的方式;

>是以覆盖重写入的方式。

2、框架爬虫

如已写好一个爬虫项目,爬虫主文件路径为 /lagou/lagou/spiders/lg.py。

crontab -e 编辑模式中

  1. 先写好时间

  2. cd 到爬虫主文件里

  3. scrapy 命令所在路径下,执行scrapy crawl lg

  4. 最后可输出日志到指定文件

如:

00 19 * * * cd /home/ubuntu/python_works/lagou/lagou/spiders && /usr/local/anaconda/bin/scrapy crawl lg >> /home/ubuntu/python_works/lagou/lg_run.log

若不知道 scrapy 命令的路径,可用 which scrapy 查找。


欢迎各位看官及技术大佬前来交流指导呀,可以邮件至 jqiange@yeah.net