如果满足条件,则终止Scrapy

use*_*794 5 python scrapy

我在python中使用scrapy编写了一个刮刀.它包含100个start_urls.

我想在条件满足后终止刮擦过程.即找到终止特定div的刮擦.终止我的意思是它应该停止刮掉所有网址.

可能吗

pau*_*rth 11

您正在寻找的是CloseSpider例外.

在源文件顶部的某处添加以下行:

from scrapy.exceptions import CloseSpider
Run Code Online (Sandbox Code Playgroud)

当你发现你的终止条件得到满足时,就像做一样

        raise CloseSpider('termination condition met')
Run Code Online (Sandbox Code Playgroud)

在你的回调方法中(而不是返回或产生一个ItemRequest).

请注意,仍将解析仍在进行中的请求(发送HTTP请求,尚未收到响应).但是,不会处理任何新请求.