settings常用配置

Scrapy工程中有一个配置文件settings.py,其中包含了许多Scrapy框架的配置参数,包括爬虫名、并发设置、开启的中间件、开启的处理管线等。除了框架本身需要的参数,之前的章节我们也介绍过Scrapy框架中开启了许多内置的Middleware(中间件),这些中间件共同构成了Scrapy爬虫处理流程的各种功能,它们也有许多配置项可以通过配置settings.py调整其行为。这篇笔记我们简单介绍一些实际开发中可能用到的一些配置项。

项目基础配置

BOT_NAME = 'tutorial'                              # 项目名称
USER_AGENT = 'Scrapy/1.8.0 (+https://scrapy.org)'  # 默认使用的User-Agent
ROBOTSTXT_OBEY = True                              # 是否遵守robots.txt(默认True)
REQUEST_FINGERPRINTER_IMPLEMENTATION = '2.7'       # 默认的指纹生成版本号

启用中间件和管线配置

# 启用的Downloader Middleware配置
DOWNLOADER_MIDDLEWARES = { }
# 启用的Spider Middleware配置
SPIDER_MIDDLEWARES = { }
# 启用的管线配置
ITEM_PIPELINES = { }

并发与延迟

CONCURRENT_REQUESTS = 16                 # 全局并发请求数
DOWNLOAD_DELAY = 0                       # 请求间延迟(秒)
CONCURRENT_REQUESTS_PER_DOMAIN = 8       # 单域名并发数
CONCURRENT_REQUESTS_PER_IP = 0           # 单IP并发数(非0时覆盖域名设置)

超时与重试

DOWNLOAD_TIMEOUT = 180                   # 请求超时时间(秒)
RETRY_ENABLED = True                     # 启用重试
RETRY_TIMES = 2                          # 重试次数
RETRY_HTTP_CODES = [500, 502, 503, 504]  # 重试的HTTP状态码

缓存与去重

HTTPCACHE_ENABLED = False                              # HTTP缓存(默认关闭)
DUPEFILTER_CLASS = 'scrapy.dupefilters.RFPDupeFilter'  # 去重过滤器

日志与调试

LOG_LEVEL = 'DEBUG'                      # 日志级别(DEBUG/INFO/WARNING/ERROR)
LOG_FILE = 'scrapy.log'                  # 日志文件路径
TELNETCONSOLE_ENABLED = True             # 启用Telnet控制台
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。