settings组件分析


  • COOKIES_ENABLED

    进入 scrapy 包 -> downloadermiddlewares 子包 -> cookies模块中

    class CookiesMiddleware:
        """This middleware enables working with sites that need cookies"""
        # 使用该中间件可以处理需要Cookie的网站
    
        def __init__(self, debug=False):
            self.jars = defaultdict(CookieJar)
            self.debug = debug
    
        @classmethod
        def from_crawler(cls, crawler):
            # 这是一个组件,作用于所有的scrapy Request
            # 通过这个组件,提取前一个Request中的cookie,并加入下一个Request cookie中去
            if not crawler.settings.getbool('COOKIES_ENABLED'):
                raise NotConfigured
            return cls(crawler.settings.getbool('COOKIES_DEBUG'))
    
        def process_request(self, request, spider):
            if request.meta.get('dont_merge_cookies', False):
                return


  • USER_AGENT

    设置全局USER_AGENT,与DOWNLOADERMIDDLEWARES 配合

    USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'
  • DOWNLOADER_MIDDLEWARES

    赋予每个Scrapy Request USER-AGENT

    DOWNLOADER_MIDDLEWARES = {
    #    'ArticleSpider.middlewares.ArticlespiderDownloaderMiddleware': 543,
        'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 2
    }

Author: Ming Hui
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Ming Hui !
 Previous
Git基础 Git基础
一.Git基础1.Git介绍 Git是目前世界上最先进的分布式版本控制系统 版本控制系统: 记录每个迭代版本的信息 版本号 文件名 操作用户 日志 修改时间 1 Test.py well 修改标题 2020/04/18
2020-06-30
Next 
MySQL基础 MySQL基础
查看库,表,内容 查看MySQL版本号 mysql -V or mysql --version 查看当前所有库 SHOW databases; 进入数据库 USE db_name; 查看当前所有表 SHOW TABLES; SHO
2020-06-28