学科分类
目录
网络爬虫

Settings—定制Scrapy组件

在Scrapy settings(设置)中可以定制各个Scrapy组件的行为,包括核心组件、扩展组件、管道及Spiders组件等。

下列是常用的设置项目及其含义:

BOT_NAME

使用Scrapy实现的bot名称,也叫项目名称。该名称用于构造默认的User-Agent,同时也用来log。默认名称是“scrapybot”。

当使用startproject命令创建项目时该值也被自动赋值。

  • CONCURRENT_ITEMS

设置了Item Pipeline同时处理每个response的item的最大值,默认是100。

  • CONCURRENT_REQUESTS

设置了Scrapy downloader 并发请求(concurrent requests)的最大值,默认是16。

  • DEFAULT_REQUEST_HEADERS

设置了Scrapy HTTP Request使用的默认header,它的默认值如下所示。

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

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

  • DOWNLOAD_DELAY

设置了下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度,减轻服务器压力。默认值为0,同时也支持小数,例如:

DOWNLOAD_DELAY = 0.25 # 250 ms of delay

默认情况下,Scrapy在两个请求间不等待一个固定的值,而是使用0.5到1.5之间的一个随机值乘以DOWNLOAD_DELAY 的结果作为等待间隔。

  • DOWNLOAD_TIMEOUT

设置下载器的超时时间(单位:秒),默认值是180。

  • ITEM_PIPELINES

该设置项的值是一个保存项目中启用的pipeline及其顺序的字典。该字典默认为空。字典的键表示pipeline的名称,值可以是任意值,不过值习惯设置在0-1000范围内。值越小则优先级越高。

以下是一个ITEM_PIPELINES设置项的样例:

ITEM_PIPELINES = {
'mySpider.pipelines.SomethingPipeline': 300,
'mySpider.pipelines.ItcastJsonPipeline': 800,
}
  • LOG_ENABLED

设置是否启用logging,默认是True。

  • LOG_ENCODING

设置logging使用的编码,默认值是“utf-8”。

  • LOG_LEVEL

设置log的最低级别。可选的级别有:CRITICAL、ERROR、WARNING、INFO、DEBUG,默认值是 “DEBUG”。

  • USER_AGENT

设置爬取网站时使用的默认User-Agent,除非被覆盖,它的默认值是: "Scrapy/VERSION (+http://scrapy.org)"。

  • 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 = False

该设置项禁用Cookies,为了不让网站根据我们请求的Cookies判断出我们的身份是爬虫,所以一般将Cookies的功能禁用。

点击此处
隐藏目录