我想在蜘蛛完成工作时记录一些数据。
我在蜘蛛里面做了这个功能。
def spider_closed(self, spider):
log.msg('The spider {0} finished working on'.format(self.name), level=log.INFO)
但是这个功能没有被解雇。
请注意,我可以记录我的日志,实际上我记录了很多我可以在日志文件中看到的数据。因此,日志记录正在与我合作。
我想我必须发出信号signals.spider_closed
,但我不知道该怎么做。
答案 0 :(得分:3)
您应将方法作为receiver
附加到SignalManager
信号调度员:
from scrapy.xlib.pydispatch import dispatcher
from scrapy import signals
class MySpider(Spider):
def __init__(self, *args, **kwargs):
dispatcher.connect(self.spider_closed, signal=signals.spider_closed)
super(MySpider, self).__init__(*args, **kwargs)
def spider_closed(self, spider):
log.msg('The spider {0} finished working on'.format(self.name), level=log.INFO)
另见相关主题: