Scrapy settings配置

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

Scrapy settings配置

BOT_NAME

  • 默认: ‘scrapybot’
  • 项目名称,当您使用 startproject 命令创建项目时其也被自动赋值。

SPIDER_MODULES

SPIDER_MODULES = ['downloadmiddlewares.spiders']
  • 爬虫储存的文件路径

NEWSPIDER_MODULE

NEWSPIDER_MODULE = 'downloadmiddlewares.spiders'
  • 创建爬虫文件的模板,创建好的爬虫文件会存放在这个目录下

ROBOTSTXT_OBEY

  • 设置是否需要遵循robot协议:默认为True
    通俗来说, robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页 不希望 你进行爬取收录。在Scrapy启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。当然,我们并不是在做搜索引擎,而且在某些情况下我们想要获取的内容恰恰是被 robots.txt 所禁止访问的。所以,某些时候,我们就要将此配置项设置为 False ,拒绝遵守 Robot协议 !

CONCURRENT_ITEMS

  • 默认: 100
  • Item Processor(即 Item Pipeline) 同时处理(每个response的)item的最大值。

CONCURRENT_REQUESTS

  • 默认: 16
  • Scrapy downloader 并发请求(concurrent requests)的最大值。

DEFAULT_REQUEST_HEADERS

  • 默认: 如下
{
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
}
  • Scrapy HTTP Request使用的默认header。

DEPTH_LIMIT

  • 默认: 0
  • 爬取网站最大允许的深度(depth)值。如果为0,则没有限制。

DOWNLOAD_DELAY

  • 默认: 0
  • 下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度, 减轻服务器压力。同时也支持小数:
    DOWNLOAD_DELAY = 0.25 # 250 ms of delay
    默认情况下,Scrapy在两个请求间不等待一个固定的值, 而是使用0.5到1.5之间的一个随机值 DOWNLOAD_DELAY 的结果作为等待间隔。

CONCURRENT_REQUESTS_PER_DOMAIN

  • 设置网站的最大并发请求数量,默认是8

CONCURRENT_REQUESTS_PER_IP

  • 设置某个ip的最大并发请求数量,默认是0,如果非0,CONCURRENT_REQUESTS_PER_DOMAIN不生效, 这时的请求并发数量针对于ip,而不是网站置,DOWNLOAD_DELAY针对ip而不是网站。

DOWNLOAD_TIMEOUT

  • 默认: 180
  • 下载器超时时间(单位: 秒)。

ITEM_PIPELINES

  • 默认: {}
  • 保存项目中启用的pipeline及其顺序的字典。该字典默认为空,值(value)任意,不过值(value)习惯设置在0-1000范围内,值越小优先级越高。
ITEM_PIPELINES = {
    'mySpider.pipelines.SomethingPipeline': 300,
    'mySpider.pipelines.ItcastJsonPipeline': 800,
}

设置日志

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)
LOG_FILE = "TencentSpider.log"
LOG_LEVEL = "INFO"

USER_AGENT

  • 默认: “Scrapy/VERSION (+http://scrapy.org)”
  • 爬取的默认User-Agent,除非被覆盖。

PROXIES

  • 代理设置
   PROXIES = [
      {'ip_port': '111.11.228.75:80', 'password': ''},
      {'ip_port': '120.198.243.22:80', 'password': ''},
      {'ip_port': '111.8.60.9:8123', 'password': ''},
      {'ip_port': '101.71.27.120:80', 'password': ''},
      {'ip_port': '122.96.59.104:80', 'password': ''},
      {'ip_port': '122.224.249.122:8088', 'password':''},
    ]

COOKIES_ENABLED

  • 是否携带cookkie,默认 “true”

COOKIES_DEBUG

  • 跟踪cookies,默认情况为False

更多信息,参考https://scrapy-chs.readthedocs.io

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程