zoukankan      html  css  js  c++  java
  • 爬虫自定义扩展-信号

    利用信号在指定的位置注册指定操作

    from scrapy import signals
    
    
    class MyExtension(object):
        def __init__(self, value):
            self.value = value
    
        @classmethod
        def from_crawler(cls, crawler):
            val = crawler.settings.getint('MMMM')
            ext = cls(val)
    
            crawler.signals.connect(ext.spider_opened, signal=signals.spider_opened)
            crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)
    
            return ext
    
        def spider_opened(self, spider):
            print('open')
    
        def spider_closed(self, spider):
            print('close')
    View Code

    #在scrapy中注册信号,spider_opend

    crawler.signals.connect(ext.spider_opened, signal=signals.spider_opened)

    #在scrapy中注册信号,spider_closed
    crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)

    #出发信号时,执行的函数

    ext.spider_opened,  ext.spider_closed

    def opend(self,spider):
        print('open')
    
    def closed(self,spider):
        print('close')
    

    setting中注册类的路径

    # EXTENSIONS = {
    #     # 'step8_king.extensions.MyExtension': 500,
    # }
  • 相关阅读:
    图片 音频 视频上传
    asp.net导出execl和图片
    asp.net网页播放MP4 出错
    js 定时器
    js的Math和正则
    js字符串,Arry数组,join连接,push,shift,sort
    js的argument参数
    js函数对象
    js简单语法,循环
    position的relative
  • 原文地址:https://www.cnblogs.com/catherine007/p/8639339.html
Copyright © 2011-2022 走看看