scrapy 信号槽的使用

scrapy文档讲了scrapy的信号,但没有说明具体怎么用,下面是实例

在spider类下

from scrapy.xlib.pydispatch import dispatcher
from scrapy import signals
def __init__(self):
    dispatcher.connect(self.spider_stopped, signals.engine_stopped)##建立信号和槽,在爬虫结束时调用
    dispatcher.connect(self.spider_closed, signals.spider_closed)##建立信号和槽,在爬虫关闭时调用
    
    #爬虫关闭时 调用本方法
    def spider_closed(self):
        print("i close")

    #爬虫结束时 调用本方法
    def spider_stopped(self):
        print("i done")

spider类初始化时就绑定了两个方法,spider_closedspider_stopped

注意, signals.spider_closed比signals.engine_stopped先执行

你可能感兴趣的:(scrapy 信号槽的使用)