Scrapy Settings.py文件配置
2019-01-07 本文已影响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"