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_closed
和spider_stopped
注意, signals.spider_closed比signals.engine_stopped先执行