当前位置: 首页 > 面试题库 >

scrapy:当蜘蛛退出时调用一个函数

空英逸
2023-03-14
问题内容

有没有一种方法可以在Spider类终止之前触发它?

我可以自己终止蜘蛛,如下所示:

class MySpider(CrawlSpider):
    #Config stuff goes here...

    def quit(self):
        #Do some stuff...
        raise CloseSpider('MySpider is quitting now.')

    def my_parser(self, response):
        if termination_condition:
            self.quit()

        #Parsing stuff goes here...

但是我找不到任何有关如何确定蜘蛛何时自然退出的信息。


问题答案:

看来您可以通过来注册信号监听器dispatcher

我会尝试类似的东西:

from scrapy import signals
from scrapy.xlib.pydispatch import dispatcher

class MySpider(CrawlSpider):
    def __init__(self):
        dispatcher.connect(self.spider_closed, signals.spider_closed)

    def spider_closed(self, spider):
      # second param is instance of spder about to be closed.

在较新版本的scrapyscrapy.xlib.pydispatch中已弃用。相反,您可以使用from pydispatch import dispatcher



 类似资料:
  • 问题内容: 我在一个要刮擦多个站点(可能是数百个站点)的项目中使用了scrapy,并且我必须为每个站点编写特定的蜘蛛。我可以使用以下命令在部署要抓取的项目中安排 一只 蜘蛛: 但是,如何一次计划一个项目中的 所有 蜘蛛呢? 所有帮助非常感谢! 问题答案: 我一次运行200个以上Spider的解决方案是为该项目创建一个自定义命令。有关实现自定义命令的更多信息,请参见http://doc.scrapy

  • 问题内容: 我需要创建一个用户可配置的网络爬虫/爬虫,并且我正在考虑使用Scrapy。但是,我无法对域和允许的URL regex:es进行硬编码- 而是可以在GUI中对其进行配置。 如何(尽可能简单)使用Scrapy创建一个蜘蛛或一组蜘蛛,其中域和允许的URL regex:es是可动态配置的?例如,我将配置写入文件,然后蜘蛛程序以某种方式读取它。 问题答案: 警告:此答案适用于Scrapy v0.

  • 问题内容: 有没有一种方法可以在不使用Scrapy守护程序的情况下运行Scrapy项目中的所有蜘蛛程序?曾经有一种使用来运行多个Spider的方法,但是该语法已删除,Scrapy的代码也进行了很多更改。 我尝试创建自己的命令: 但是,一旦在上注册了蜘蛛,我就会得到所有其他蜘蛛的断言错误: 有什么办法吗?我不想开始子类化核心Scrapy组件,而只是为了运行所有我的蜘蛛。 问题答案: 这是一个不在自定

  • 蜘蛛记录分为两部分: 时间筛选 和 蜘蛛记录 (详情) 1.时间筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,并且能自定义选择时间段来得出想要的结果报表 2.蜘蛛记录 (时间段详情) 1)蜘蛛记录便是搜索引擎通过蜘蛛爬行所留下的痕迹,蜘蛛记录中的细分做的非常的详细, 包含蜘蛛IP地址、访问URL、蜘蛛类型、来访时间 2)搜索引擎爬取网页时,只有触发js统计代码才能被统计,故数据仅供参考

  • 海蜘蛛EWP(Easy Webserver Platform)是专门针对服务器运营商/企业等为各类网站运营而设计的稳定易用Web服务平台。它兼有路由器的功能,集专业级防火墙于一体,能够精确控制内外网的访问和各个用户的权限,打造一个高稳定性、易维护、投资低的全新智能化Web应用平台。 EWP基于嵌入式架构,提供稳定高效的底层核心功能和应用接口。能够兼容绝大多数国内外常见的Web应用,提供主流的Web

  • 本文向大家介绍Python打印scrapy蜘蛛抓取树结构的方法,包括了Python打印scrapy蜘蛛抓取树结构的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python打印scrapy蜘蛛抓取树结构的方法。分享给大家供大家参考。具体如下: 通过下面这段代码可以一目了然的知道scrapy的抓取页面结构,调用也非常简单 希望本文所述对大家的Python程序设计有所帮助。