在settings里可以自定义配置scrapy组件
#项目名称,
BOT_NAME = 'downloadware'
# 爬虫存储的文件路径
SPIDER_MODULES = ['downloadware.spiders']
# 创建爬虫文件的模板,创建好的爬虫文件会存放在这个目录下
NEWSPIDER_MODULE = 'downloadware.spiders'
以上三项在创建Scrapy项目的时候就会自动创建好
# 模拟浏览器请求,用户代理,一般设置这个参数用来伪装浏览器请求
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
# 是否遵行robots协议,为False时,表示不遵守,默认为True,表示遵守
ROBOTSTXT_OBEY = False
# Scrapy downloader(下载器) 处理的最大的并发请求数量。 默认: 16
CONCURRENT_REQUESTS = 10
# 下载延迟的秒数,用来限制访问的频率,默认为0,没有延时
DOWNLOAD_DELAY = 0.25
# 每个域名下能够被执行的最大的并发请求数据量,默认8个
CONCURRENT_REQUESTS_PER_DOMAIN = 16
# 设置某个IP最大并发请求数量,默认0个
ONCURRENT_REQUESTS_PER_IP = 16
# 1. 如果ONCURRENT_REQUESTS_PER_IP非0,则忽略 CONCURRENT_REQUESTS_PER_DOMAIN 设定,使用ONCURRENT_REQUESTS_PER_IP设定。 也就是说,并发限制 将针对IP,而不是网站。
# 2. 该设定也会影响 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0, 下载延迟应用在IP而不是网站上。
# 是否要携带cookies,一般情况下, 不是必须要携带cookies的请求,我们 将这个参数设置为False,默认为: True
COOKIES_ENABLED = 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
}
#设置和激活管道文件
ITEM_PIPELINES = {
'downloadware.pipelines.DownloadwarePipeline': 300,
}
# 中间件后面的数值表示优先级,数值越小,优先执行
扩展设置
#自动限速扩展(实现上一个请求和下一个请求的时间是不固定的,默认为False
AUTOTHROTTLE_ENABLED = True
# 相关设置
#初始的下载延时默认5秒
AUTOTHROTTLE_START_DELAY = 5
#最大下载延时
AUTOTHROTTLE_MAX_DELAY = 60
#针对网站最大的并行请求数量
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
#调试模式(可以展示每个response每个限速时间)默认为False
AUTOTHROTTLE_DEBUG = False
#设置数据缓存默认为False
HTTPCACHE_ENABLED = True
#开启缓存的扩展插件
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
#设置缓存的超时时间默认为0表示永远生效
HTTPCACHE_EXPIRATION_SECS = 0
#设置缓存数据的存储路径
HTTPCACHE_DIR = 'httpcache'
#忽略某些状态码的请求结果
HTTPCACHE_IGNORE_HTTP_CODES = []
日志配置
LOG_ENABLED = True
# 默认: True 是否启用logging。
LOG_ENCODING = 'utf-8'
# 默认: 'utf-8' logging使用的编码。
LOG_LEVEL = 'DEBUG'
# 默认: 'DEBUG' log的最低级别。可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG 。
#CRITICAL 严重错误
#ERROR 一般错误
#WARNING 警告信息
#INFO 一般信息
#DEBUG 调试信息
LOG_FILE
#默认: None
# logging 输出的文件名。如果为None,则使用标准错误输出(standard error)。
# Logging 使用 Scrapy提供了log功能,可以通过 logging 模块使用。
# 例子
LOG_FILE = "asd.log"
LOG_LEVEL = "INFO"