scrapy 自定义扩展extensions

本文介绍如何通过自定义扩展类实现Scrapy框架的功能增强,包括注册信号、响应爬虫启动和停止事件,以及在settings中配置自定义扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#框架扩展,在某些位置加入自定制功能,类似于面向切面编程
#参考原扩展类自定义类
#from scrapy.extensions.telnet import TelnetConsole

自定义extensions.py


from scrapy import signals
#框架扩展,在某些位置加入自定制功能
#from scrapy.extensions.telnet import TelnetConsole

class MyExtend:

    def __init__(self, crawler):
        self.crawler = crawler
        #注册信号
        self.crawler.signals.connect(self.spider_start, signals.spider_opened) #爬虫开始的时候做某些动作
        self.crawler.signals.connect(self.engine_start, signals.engine_started) #爬虫开始的时候做某些动作
        self.crawler.signals.connect(self.engine_stop, signals.engine_stopped) #引擎关闭的时候做特殊多动作

    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler)

    def spider_start(self):
        print("signals.spider_opened")

    def engine_start(self):
        print("signals.engine_started")

    def engine_stop(self):
        print("signals.engine_stopped")

settings.py进行配置:

# Enable or disable extensions
# See https://doc.scrapy.org/en/latest/topics/extensions.html
EXTENSIONS = {
   #'scrapy.extensions.telnet.TelnetConsole': None,
   'spider1.extensions.MyExtend':300,
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值