You should attach your method as a receiver
to the SignalManager
signal dispatcher:
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)
Also see relevant threads: