美文网首页
scrapy信号signals

scrapy信号signals

作者: zenos876 | 来源:发表于2019-08-14 10:56 被阅读0次

    Scrapy广泛使用信号来通知特定事件发生的时间。 可以在Scrapy项目中捕获一些这些信号(例如,使用扩展名)来执行其他任务或扩展Scrapy的功能。

    现在数据收集的基础上, 当检测到关闭的信号, 将对收集的404url拼接插入到的stats

    简单的例子

    1.在spider中导入库

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

    2.定义spider关闭时需要处理的方法

        def handle_spider_closed(self, spider, reason):
            self.crawler.stats.set_value('failed_urls', ','.join(self.failed_urls))
            pass
    

    由于信号signals.spider_closed传递了两个参数, 这里定义的方法接收了这两个参数


    spdier_closed

    3.在初始化中与信号连接

        def __init__(self, **kwargs):
            super().__init__(**kwargs)
            self.failed_urls = []
            dispatcher.connect(self.handle_spider_closed, signals.spider_closed)
    

    4.运行结果

    运行结果

    scrapy官方文档

    相关文章

      网友评论

          本文标题:scrapy信号signals

          本文链接:https://www.haomeiwen.com/subject/dwwwjctx.html