scrapy爬虫设置停止的条件

  使用scrapy做爬虫程序时,有时候我们需要在爬虫满足一定条件时,将程序中断掉,从而不再向服务器发送已经没有意义的请求。

一:scrapy中提供的两种停止的方式

 1.在spider中停止爬虫:

 在解析函数中调用内置函数

self.crawler.engine.close_spider(self, "当调用此方法时打印信息为:无有效信息,关闭spider")

  设置条件,当满足一定的条件时执行此代码,则可以停止掉爬虫程序。但是经过我的反复试验,执行此代码之后爬虫程序并不会立即关闭,而是还会运行一段时间。
  造成这种现象存在两种可能:
  (1).调用关闭方法之后会将请求队列中的所有的url请求完之后才会完全停止。
  (2).在执行此语法后,所在的解析函数不再产生新的url进入队列中,但是后续的解析函数还是会执行,一直到后面的所有的解析函数全部完成。
(经过几次试验,发现是第二种可能,但又不完全确定,如果有大神知道此处的逻辑,可以交流一下)

 2.在pipeline中停止爬虫:

类似于上面的方式,只不过是在pipeline中执行

spider.crawler.engine.close_spider(spider, "无有效信息,关闭spider")  # pepline 中使用此关闭方法

调用此语法之后同样有上面的没有立即停止的情况。

二:使用os关闭程序

此方法与scrapy内置的关闭方法相似,只不过是使用os强制关闭进程。
首先导入os包

import os  # 引入os包

然后跟前面的方法类似,设置条件,当满足条件时执行

os.exit()

这样就可以直接强制性的关闭进程。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

jingjiadashaoye

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值