我在python中使用scrapy编写了一个刮刀。它包含100个start_urls。
我想在条件满足后终止抓取过程。 即找到终止特定div的刮擦。终止时我的意思是它应该停止抓取所有网址。
是否可能
答案 0 :(得分:11)
您正在寻找的是CloseSpider
exception。
在源文件顶部的某处添加以下行:
from scrapy.exceptions import CloseSpider
当您检测到您的终止条件得到满足时,只需执行类似
的操作即可 raise CloseSpider('termination condition met')
回调方法中的(而不是返回或产生Item
或Request
)。
请注意,仍在解析仍在进行中的请求(发送HTTP请求,尚未收到响应)。不会处理任何新请求。