美文网首页
Scrapy Settings.py文件配置

Scrapy Settings.py文件配置

作者: 暴走的金坤酸奶味 | 来源:发表于2019-01-07 21:40 被阅读0次

    Settings.py 设置文件参数介绍

    Scrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。比如 设置 Pipeliine、LOG_LEVEL等。

    参考文档: http://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/settings.html#topics-settings-ref


    #项目名称,使用 startproject 命令创建项目时会被自动赋值
    BOT_NAME = 'downloadware'
    
    #### 爬虫存储的文件路径
    SPIDER_MODULES = ['downloadware.spiders']
    
    #### 创建爬虫文件的模板,创建好的爬虫文件会存放在这个目录下
    NEWSPIDER_MODULE = 'downloadware.spiders'
    
    #### 模拟浏览器请求,用户代理,一般设置这个参数用来伪装浏览器请求
    USER_AGENT = 'downloadware (+http://www.yourdomain.com)'
    
    #### 是否遵行robots协议,为False时,表示不遵守,默认为True,表示遵守
    ROBOTSTXT_OBEY = False
    
    #### Scrapy downloader(下载器) 处理的最大的并发请求数量。 默认: 16
    CONCURRENT_REQUESTS = 32
    
    #### 下载延迟的秒数,用来限制访问的频率,默认为0,没有延时
    DOWNLOAD_DELAY = 2
    
    #### 每个域名下能够被执行的最大的并发请求数据量,默认8个
    CONCURRENT_REQUESTS_PER_DOMAIN = 16
    
    
    #### 设置某个IP最大并发请求数量,默认0个
    ONCURRENT_REQUESTS_PER_IP = 16
    
    
    1. 如果非0,则忽略 CONCURRENT_REQUESTS_PER_DOMAIN 设定,使用该设定。 也就是说,并发限制 将针对IP,而不是网站。
    
    2. 该设定也影响 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0, 下载延迟应用在IP而不是网站上。
    
    
    #### 是否要携带cookies,一般情况下, 不是必须要携带cookies的请求,我们 将这个参数设置为False,默认为: True
    
    COOKIES_ENABLED = True
    
    #### 查看请求是否携带cookies,追踪cookies True:表示追踪,False 不追踪
    #### 默认为False
    COOKIES_DEBUG = True
    
    #### 设置默认的请求头,cookie不要放在这里,会不生效
    
    DEFAULT_REQUEST_HEADERS = {
    
    'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    }
    
    #设置和激活爬虫中间件
    SPIDER_MIDDLEWARES = {
        'downloadware.middlewares.DownloadwareSpiderMiddleware': 543,
    }
    
    
    
    #设置和激活下载中间件
    DOWNLOADER_MIDDLEWARES = {
        "downloadware.middlewares.UserAgentDown":543
    
    }
    
    #设置扩展
    EXTENSIONS = {
        'scrapy.extensions.telnet.TelnetConsole': None,
    }
    
    
    #设置和激活管道文件
    
    ITEM_PIPELINES = {
        'downloadware.pipelines.DownloadwarePipeline': 300,
    }
    
    #自动限速扩展(实现上一个请求和下一个请求的时间是不固定的,默认为False
    AUTOTHROTTLE_ENABLED = True
    
    
    更友好的对待网站,而不使用默认的下载延迟0。 
    自动调整scrapy来优化下载速度,使得用户不用
    调节下载延迟及并发请求数来找到优化的值。 
    用户只需指定允许的最大并发请求数
    ,剩下的都交给扩展来完成.
    
    永远不会设置一个比 DOWNLOAD_DELAY 更低的下载延迟
    或者比 CONCURRENT_REQUESTS_PER_DOMAIN 更高的并
    发数 (或 CONCURRENT_REQUESTS_PER_IP ,
    取决于您使用哪一个)。
    
    设置 下面是控制AutoThrottle扩展的设置:
    
    AUTOTHROTTLE_ENABLED 
    AUTOTHROTTLE_START_DELAY 
    AUTOTHROTTLE_MAX_DELAY 
    AUTOTHROTTLE_TARGET_CONCURRENCY
    AUTOTHROTTLE_DEBUG 
    以上各个参数的说明如下: 启用AutoThrottle扩展。
    
    
    #初始的下载延时默认5秒
    AUTOTHROTTLE_START_DELAY = 5
    
    #最大下载延时
    AUTOTHROTTLE_MAX_DELAY = 60
    
    
    #针对网站最大的并行请求数量
    AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
    
    
    #调试模式(可以展示每个response每个限速时间)默认为False
    AUTOTHROTTLE_DEBUG = False
    
    
    #设置数据缓存默认为False
    
    HTTPCACHE_ENABLED = True
    
    #设置缓存的超时时间默认为0表示永远生效
    HTTPCACHE_EXPIRATION_SECS = 0
    
    #设置缓存数据的存储路径
    
    HTTPCACHE_DIR = 'httpcache'
    
    #忽略某些状态码的请求结果
    HTTPCACHE_IGNORE_HTTP_CODES = []
    
    
    #开启缓存的扩展插件
    HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
    
    
    
    
    
    
    

    关于日志信息的设置

    LOG_ENABLED
    默认: True

    是否启用logging。
    LOG_ENCODING
    默认: 'utf-8'

    logging使用的编码。
    LOG_LEVEL
    默认: 'DEBUG'

    log的最低级别。可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG 。

    • CRITICAL - 严重错误(critical)
    • ERROR - 一般错误(regular errors)
    • WARNING - 警告信息(warning messages)
    • INFO - 一般信息(informational messages)
    • DEBUG - 调试信息(debugging messages)

    LOG_FILE
    默认: None

    logging输出的文件名。如果为None,则使用标准错误输出(standard error)。  
    Logging使用
    Scrapy提供了log功能,可以通过 logging 模块使用。
    可以修改配置文件settings.py,任意位置添加下面两行,效果会清爽很多。

    LOG_FILE = "TencentSpider.log"
    LOG_LEVEL = "INFO"

    相关文章

      网友评论

          本文标题:Scrapy Settings.py文件配置

          本文链接:https://www.haomeiwen.com/subject/cinprqtx.html