scrapy信号signals

2019-08-14  本文已影响0人  zenos876

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官方文档

上一篇 下一篇

猜你喜欢

热点阅读