Scrapy Settings 内置设置参考

  在settings.py文件中,有内置的设置,按字母顺序排列,以及它们的默认值和它们的应用范围,本篇列出一些常用的内置设置。

  BOT_NAME

   项目名称,此名称也用于日志记录,默认: scrapybot

  CONCURRENT_ITEMS  

   设置item pipeline同时(并发)处理每个respose的item的最大数,默认:100

  CONCURRENT_REQUESTS

   scrapy downloader(下载器)执行的并发请求最大数量,默认:16

  CONCURRENT_REQUESTS_PER_DOMAIN

   任何单个域执行的并发请求的最大数量,默认:8

  CONCURRENT_REQUESTS_PER_IP

   任何单个IP执行的并发求的最大数量,而使用该设置,并发限制将适用于每个 IP,而不是每个域,默认0不启用, 此值影响CONCURRENT_REQUESTS_PER_DOMAIN和DOWNLOAD_DELAY

  DEFAULT_REQUEST_HEADERS

   请求的默认标头(http request使用的默认header),cookie不在其中设置:

{
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
}

  DEPTH_LIMIT

     深度限制,设置抓取网站最大允许的深度值。默认为0,表示没有限制。

  DOWNLOAD_DELAY:

     下载延时秒数,下载器在下载同一个网站时需要等待的时间间隔,用来限制爬取速度,减轻服务器压力,默认值为0,同时也支持小数。等待的时间间隔非固定时间,0.5 * x或者1.5 * x

  DEPTH_PRIORITY

    深度优先级,一个整数值,用于根据其深度调整request优先级,随着深度的增加,优先级会降低。调整如下:

  request.priority = request.priority - ( depth * DEPTH_PRIORITY )

  DOWNLOADER_CLIENT_TLS_METHOD

    设置(默认 HTTP/1.1)下载器使用的 TLS/SSL 方法,默认TLS。取值有TLS、TLSv1.1、TLSv1.2

  DOWNLOAD_TIMEOUT

    设置下载器的超时时间,以秒为单位,默认:180,一般不需要这么长时间等待,30秒足够,有利于重试次数。

    这是全局的设置,单独的spider设置,使用 Request.meta

scrapy.Request(url=url,meta={"download_timeout":60})

  ITEM_PIPELINES

    需要启用的管道,是一个字典类型,默认字典为空,字典中键表示pipeline的名称,值可以是任意值,一般0~1000范围,值越小则优先级越高。如下所示(spider级 管道设置):

    custom_settings = {
        'ITEM_PIPELINES': {'realtime_python_crawler.pipelines.VendorQuotePlatformPipeline':301},
    }

  DOWNLOAD_MAXSIZE

    下载Respose的最大字节,默认1073741824(1024MB),禁用它设置为0,单独的spider设置,使用 Request.meta的download_maxsize

  LOG_ENABLED

    设置是否启用logging,默认为True.

  LOG_ENCODING

    设置logging使用的编码,默认值utf-8

  LOG_LEVEL:

    设置log的最低日志级别,可选:CRITICAL  ERROR  WARNING INFO  DEBUG 默认为DEBUG

  USER_AGENT

    设置爬取网站时使用的默认User-Agent, 默认值Scarpy/Version(http://scrapy.org)

  COOKIES_ENABLED

    设置禁用Cookies,为了不让网站根据请求的Cookies判断出用户的身份是爬虫,一般将Cookies的功能禁用。默认True 已禁用。

  DOWNLOAD_HANDLERS

      默认:{}   是一个字典,包含项目中启用的请求下载器处理程序的字典,在DOWNLOAD_HANDLERS_BASE中,默认如下:

{
    'data': 'scrapy.core.downloader.handlers.datauri.DataURIDownloadHandler',
    'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler',
    'http': 'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
    'https': 'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
    's3': 'scrapy.core.downloader.handlers.s3.S3DownloadHandler',
    'ftp': 'scrapy.core.downloader.handlers.ftp.FTPDownloadHandler',
}

   不应在项目中修改这个设置,在要修改在DOWNLOAD_HANDLERS修改,通过None来禁用,如禁用ftp,如下所示:

DOWNLOAD_HANDLERS = {
    'ftp': None,
}

   默认的https处理程序使用http1.1,要使用http 2.0:

    1)安装Twisted[http2]>=17.9.0以安装在 Twisted 中启用 HTTP/2 支持所需的软件包

    2)更新DOWNLOAD_HANDLERS如下:

DOWNLOAD_HANDLERS = {
    'https': 'scrapy.core.downloader.handlers.http2.H2DownloadHandler',
}

 

 

posted on 2022-12-26 12:16  花阴偷移  阅读(46)  评论(0编辑  收藏  举报

导航