zoukankan      html  css  js  c++  java
  • scrapy 配置项及默认值

    描述

    在Scrapy组件的特性可以用Scrapy设置进行修改。 这些设置也可以选择Scrapy项目当前处于活动状态的情况下,如果你有多个Scrapy项目。

    指定的设置

    您必须通知哪些当你放弃一个网站,你正在使用设置Scrapy。 为此,重点内容环境变量SCRAPY_SETTINGS_MODULE应使用其值应在Python路径语法。

    填充设置

    下表显示了一些通过它可以填充设置的机制:

    SN 机制和说明

    1. Command line options
    
    在这里,所传递的参数通过重写其他选项最高的优先顺序。 该-s用于覆盖一个或多个设置。
    scrapy crawl myspider -s LOG_FILE=scrapy.log
    2.  Settings per-spider
    蜘蛛可以有自己的设置,通过使用属性custom_settings覆盖项目的。
    class DemoSpider(scrapy.Spider) :
        name = 'demo'
    
        custom_settings = {
            'SOME_SETTING': 'some value',
        }
    3. Project settings module
    在这里,你可以像填充在settings.py文件添加或修改的设置您的自定义设置。
    
    4. Default settings per-command
    每个Scrapy工具命令定义自己的设置在default_settings属性,覆盖全球的默认设置。   
    5. Default global settings:
    这些设置的scrapy.settings.default_settings模块中找到。

    访问设置

    他们都可以通过self.settings并初始化后在基地蜘蛛设置。
    下面的例子说明了这一点:

    class DemoSpider(scrapy.Spider) :
        name = 'demo'
        start_urls = ['http://example.com']
    
        def parse(self, response) :
            print("Existing settings: %s" % self.settings.attributes.keys() )

    要在初始化之前蜘蛛使用的设置,您必须覆盖from_crawler的方法init()你的蜘蛛的方法。 您可以通过属性访问设置scrapy.crawler.Crawler.settings传递给from_crawler方法。

    下面的例子说明了这一点:

    class MyExtension(object) :
        def __init__(self, log_is_enabled=False) :
            if log_is_enabled:
                print("Enabled log")
    
        @classmethod
        def from_crawler(cls, crawler) :
            settings = crawler.settings
            return cls(settings.getbool('LOG_ENABLED') )

    理由设置名称

    设置名称作为前缀添加到他们配置组件。 例如,对于扩展的robots.txt,设置名称可以ROBOTSTXT_ENABLED,ROBOTSTXT_OBEY,ROBOTSTXT_CACHEDIR等

    内置的设置参考

    下表给出了Scrapy的内置设置:

    SN 设置和说明

    1. AWS_ACCESS_KEY_ID
    它是用于访问亚马逊网络服务。
    默认值:无
    
    2. AWS_SECRET_ACCESS_KEY
    它是用于访问亚马逊网络服务。
    
    3. BOT_NAME
    它是一种可以用于构建用户代理机器人的名称。
    默认值:“scrapybot”
    
    4. CONCURRENT_ITEMS
    在用来并行地处理所述物品处理器的现有项目的最大数目。
    
    5. CONCURRENT_REQUESTS
    其中Scrapy下载执行现有的最大请求数。
    默认值:16
    
    6.  CONCURRENT_REQUESTS_PER_DOMAIN
     现有的最大请求数,对于任何单域同时进行。
    默认值:8
    
    7. CONCURRENT_REQUESTS_PER_IP
    现有的请求的最大数量的同时执行任何单一的IP。
    默认值:0
    
    8. DEFAULT_ITEM_CLASS
    它是用来表示商品一类。
    默认值:“scrapy.item.Item”
    
    9. DEFAULT_REQUEST_HEADERS
    它是用于Scrapy的HTTP请求的默认标题。
    默认值:
    { 
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 
    }
    10. DEPTH_LIMIT
    因为蜘蛛的最大深度抓取任何网站。
    默认值:0
    
    11.     DEPTH_PRIORITY
    它是用于根据深度来改变请求优先级的整数。
    默认值:0
    
    12.     DEPTH_STATS
    它指出是否收集详细的统计资料与否。
    默认值:True
    
    13.     DEPTH_STATS_VERBOSE
    当启用此设置,请求数统计中的每个详细深入的收集。
    默认值:False
    
    14.     DNSCACHE_ENABLED
    它是用来启用内存缓存DNS。
    默认值:True
    
    15.     DNSCACHE_SIZE
    它定义了在内存中缓存DNS的大小。
    默认值:10000
    
    16.     DNS_TIMEOUT
    它是用来设置超时DNS处理的查询。
    默认值:60
    
    17.     DOWNLOADER
    它是用来抓取过程中下载。
    默认值:“scrapy.core.downloader.Downloader”
    
    18.     DOWNLOADER_MIDDLEWARES
    这是辞典保持下载中间件和他们的订单。
    默认值: {}
    
    19.     DOWNLOADER_MIDDLEWARES_BASE
    这是默认启用的一个辞典保持下载中间件。
    默认值:{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware':100,}
    
    20.     DOWNLOADER_STATS
    此设置用于启用下载统计。
    默认值:True
    
    21.     DOWNLOAD_DELAY
    它定义的总时间下载它从下载网站的网页之前。
    默认值:0
    
    22.     DOWNLOAD_HANDLERS
    它与下载处理程序的字典。
    默认值: {}
    
    23.     DOWNLOAD_HANDLERS_BASE
    它与默认情况下启用下载处理程序的字典。
    默认值:{ '文件''scrapy.core.downloader.handlers.file.FileDownloadHandler',}
    
    24.     DOWNLOAD_TIMEOUT
    它的总时间下载到之前等待超时。
    默认值:180
    
    25.     DOWNLOAD_MAXSIZE
    这是响应的下载器下载的最大尺寸。
    默认值:1073741824 (1024MB)
    
    26.     DOWNLOAD_WARNSIZE
    它定义为响应下载警告的大小。
    默认值:33554432 (32MB)
    
    27.     DUPEFILTER_CLASS
    这是用于检测和是重复的请求的滤波的类。
    默认值:“scrapy.dupefilters.RFPDupeFilter”
    
    28.     DUPEFILTER_DEBUG
    当设置为true此设置记录所有重复的过滤器。
    默认值:False
    
    29. EDITOR
    它是用来编辑使用编辑命令蜘蛛。
    默认值:取决于环境
    
    30.     EXTENSIONS
    它是具有在项目中启用的扩展字典。
    默认值: {}
    
    31.     EXTENSIONS_BASE
    它是具有内置的扩展字典。
    默认值:{ 'scrapy.extensions.corestats.CoreStats':0,}
    
    32.     FEED_TEMPDIR
    它是用来设置,其中履带临时文件可以存储自定义文件夹的目录。
    
    33.     ITEM_PIPELINES
    它是具有管线的字典。
    默认值: {}
    
    34.     LOG_ENABLED
    它定义如果日志被启用。
    默认值:True
    
    35.     LOG_ENCODING
    它定义了将用于记录的编码类型。
    默认值: 'UTF-8'
    
    36.     LOG_FILE
    它是用于记录的输出文件的名称。
    默认值:无
    
    37.     LOG_FORMAT
    它是利用它的日志信息可以被格式化的字符串。
    默认值: '%(asctime)小号[%(name) S] %(levelname) S: %(message) s'38.     LOG_DATEFORMAT
    它是利用它的日期/时间可以格式化字符串。
    默认值: '%Y-%间 - %D%H:%M:%S'
    39.     LOG_LEVEL
    它定义最低日志级别。
    默认值:“DEBUG”
    
    40.     LOG_STDOUT
    此设置如果设置为true ,所有侑过程输出会出现在日志中。
    默认值:False
    
    41.     MEMDEBUG_ENABLED
    它定义如果内存调试启用。
    默认值:False
    
    42.     MEMDEBUG_NOTIFY
    它定义启用内存调试时,发送到特定地址的内存报告。
    默认值: []
    
    43.     MEMUSAGE_ENABLED
    它定义如果存储器使用是当scrapy过程超过存储器限制被启用。
    默认值:False
    
    44.     MEMUSAGE_LIMIT_MB
    如果定义了存储器的最大限制(in megabytes)被允许。
    默认值:0
    
    45.     MEMUSAGE_CHECK_INTERVAL_SECONDS
    它用于通过设置间隔的长度,以检查本内存使用情况。
    默认值:60.0
    
    46.     MEMUSAGE_NOTIFY_MAIL
    它是用来当内存达到极限与电子邮件列表通知。
    默认值:False
    
    47.     MEMUSAGE_REPORT
    它定义如果内存使用情况报告要在关闭每个蜘蛛发送。
    默认值:False
    
    48.     MEMUSAGE_WARNING_MB
    它定义被发送警告之前被允许的总存储。
    默认值:0
    
    49.     NEWSPIDER_MODULE
    这是其中使用创造了新的蜘蛛模块genspider命令。
    默认值: ''
    
    50.     RANDOMIZE_DOWNLOAD_DELAY
    它定义的时候了Scrapy等待下载的同时从网站上请求一个随机量。
    默认值:True
    
    51.     REACTOR_THREADPOOL_MAXSIZE
    它定义为在反应器线程池的最大尺寸。
    默认值:10
    
    52.     REDIRECT_MAX_TIMES
    它定义了一个请求多少次可以重定向。
    默认值:20
    
    53.     REDIRECT_PRIORITY_ADJUST
    设置时,该设置,调整的请求重定向优先级。
    默认值:+2
    
    54.     RETRY_PRIORITY_ADJUST
    设置时,该设置,调整请求重试的优先权。
    默认值:-1
    
    55.     ROBOTSTXT_OBEY
    当设置为Scrapy遵循robots.txt政策true 。
    默认值:False
    
    56.     SCHEDULER
    它定义了用于抓取目的调度。
    默认值:“scrapy.core.scheduler.Scheduler”
    
    57.     SPIDER_CONTRACTS
    它是在有项目蜘蛛合同测试蜘蛛的字典。
    默认值: {}
    
    58.     SPIDER_CONTRACTS_BASE
    这是保持其在Scrapy默认启用Scrapy合同的字典。
    默认值:
     {
          'scrapy.contracts.default.UrlContract' : 1,
          'scrapy.contracts.default.ReturnsContract': 2,
        }
    59.     SPIDER_LOADER_CLASS
    它定义了实现一个类SpiderLoader API来加载蜘蛛。
    默认值:“scrapy.spiderloader.SpiderLoader”
    
    60.     SPIDER_MIDDLEWARES
    这是拿着蜘蛛中间件的字典。
    默认值: {}
    
    61.     SPIDER_MIDDLEWARES_BASE
    这是在Scrapy默认启用一个辞典保持蜘蛛中间件。
    默认值:
    {
      'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
    }
    62.     SPIDER_MODULES
    它是一种含有蜘蛛其中Scrapy将寻找模块列表。
    默认值: []
    
    63.     STATS_CLASS
    这是实现一类Stats Collector API来收集统计信息。
    默认值:“scrapy.statscollectors.MemoryStatsCollector”
    
    64.     STATS_DUMP
    当设置此设置true ,转储统计到日志中。
    默认值:True
    
    65.     STATSMAILER_RCPTS
    一旦蜘蛛刮完毕,Scrapy使用此设置发送统计数据。
    默认值: []
    
    66.     TELNETCONSOLE_ENABLED
    它定义是否启用telnetconsole。
    默认值:True
    
    67.     TELNETCONSOLE_PORT
    它定义了Telnet控制台端口。
    默认值:[6023,6073]
    
    68.     TEMPLATES_DIR
    它是包含可以在创建新的项目中使用的模板目录。
    默认值: templates scrapy模块内部目录
    
    69.     URLLENGTH_LIMIT
    它定义了将被允许抓取的网址的长度为URL的最大极限。
    默认值:2083
    
    70.     USER_AGENT
    它定义了在抓取网站所使用的用户代理。
    默认值: “Scrapy / VERSION“

    转载自: https://blog.csdn.net/henry620/article/details/55505662 感谢作者 henry620

     
  • 相关阅读:
    JSON.parse解决Unexpected token ' in JSON at position 1报错
    angularjs $scope与this的区别,controller as vm有何含义?
    angularjs link compile与controller的区别详解,了解angular生命周期
    理解Promise.all,Promise.all与Promise.race的区别,如何让Promise.all在rejected失败后依然返回resolved成功结果
    angularjs 一篇文章看懂自定义指令directive
    js 记录几个因惯性思维引发的代码BUG,开发思维方式的自我反省
    js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素
    angularjs ng-if妙用,ng-if解决父子组件异步传值
    JS 从内存空间谈到垃圾回收机制
    Markdown数学公式语法
  • 原文地址:https://www.cnblogs.com/yuanyongqiang/p/13162164.html
Copyright © 2011-2022 走看看