栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

满足管道中的条件后,如何立即停止所有的星形轮和引擎?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

满足管道中的条件后,如何立即停止所有的星形轮和引擎?

您可以引发CloseSpider异常以关闭蜘蛛。但是,我认为这不能通过管道进行。

编辑 :avaleske在对此答案的注释中指出,他能够从管道中引发CloseSpider异常。最明智的方法是使用它。

在此线程的“
Scrapy用户”组中描述了类似的情况。

我引用:

要为代码的任何部分关闭蜘蛛,您应该使用

engine.close_spider

方法。请参阅此扩展以获取用法示例:https
:
//github.com/scrapy/scrapy/blob/master/scrapy/contrib/closespider.py#L61

您可以编写自己的扩展名,同时以closespider.py为例,如果满足特定条件,它将关闭蜘蛛。

另一个 “ hack”是在管道中的蜘蛛上设置一个标志。例如:

管道:

def process_item(self, item, spider):    if some_flag:        spider.close_down = True

蜘蛛:

def parse(self, response):    if self.close_down:        raise CloseSpider(reason='API usage exceeded')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号