我们在写scrapy时经常会遇到这要样的需求,在scrapy启动和退出时,想触发一个函数。
只要这样写就可以了。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from scrapy import signals
from pydispatch import dispatcher
from scrapy.signalmanager import SignalManager
class DemoSpider(scrapy.Spider):
name = 'DemoSpider'
allowed_domains = ['xxx.com']
start_urls = ['xxx.com']
def __init__(self, *args, **kwargs):
super(DemoSpider, self).__init__(*args, **kwargs)
self.start()
SignalManager(dispatcher.Any).connect(
self.closed_handler, signal=signals.spider_closed)
#退出函数
def closed_handler(self, spider):
pass
def start(self):
pass