我们在写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
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐