Scrapy定时关闭

之前转载过一篇介绍定时执行Scrapy方法的博文:scrapy定时执行抓取任务,并且一直在使用这个方法做增量爬虫。

但是问题来了,假设如下情景:某一天,我要爬的网站更新了非常非常多的内容,以至于一天过去了,我的爬虫还没有停止工作。但是我的Ubuntu系统并不知道,于是它又定时的去crontab中执行了定时任务。于是就出现了如下尴尬的情景:

我的系统里同时运行着两只有同样功能的爬虫。

这太尴尬了,即浪费系统资源,又得不到什么好的效果,还给别人的服务器造成双倍的负担。

所以,如果有什么办法能保证爬虫在第二天开启前已经关闭就好了。

怎么说,Scrapy这框架,很舒服。只需要配置一个扩展就好了,打开settings.py,添加一个配置项:

CLOSESPIDER_TIMEOUT = 82800 # 23小时后结束爬虫

这个配置项的意思:

CLOSESPIDER_TIMEOUT

默认值: 0

一个整数值,单位为秒。如果一个spider在指定的秒数后仍在运行, 它将以 closespider_timeout 的原因被自动关闭。 如果值设置为0(或者没有设置),spiders不会因为超时而关闭。

配好了之后,我们的增量爬虫就可以每天运行23小时,休息一小时,继续工作,这样周而往复了。

相关的扩展还有很多,比如可以配置获得了一定数量的item则退出等等,详见文档扩展(Extensions)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔天逸

没有钱用,只能写写博客这样子~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值