Scrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。
项目名称
BOT_NAME = ''
- 爬虫储存的文件路径
SPIDER_MODULES = ['downloadmiddlewares.spiders']
- 创建爬虫文件的模板,创建好的爬虫文件会存放在这个目录下
NEWSPIDER_MODULE = 'downloadmiddlewares.spiders'
- 设置ua模拟浏览器请求
USER_AGENT = ' '
- 设置是否需要遵循robot协议:默认为True
ROBOTSTXT_OBEY = False
- 设置请求的最大并发数据(下载器) 默认是16
CONCURRENT_REQUESTS = 32
- 设置请求的下载延时,默认为0
DOWNLOAD_DELAY = 3
- 设置网站的最大并发请求数量,默认是8
CONCURRENT_REQUESTS_PER_DOMAIN = 16
- 设置某个ip的最大并发请求数量,默认是0,设置某个ip的最大并发请求数量,默认是0,如果非0,CONCURRENT_REQUESTS_PER_DOMAIN不生效, 这时的请求并发数量针对于ip,而不是网站置,DOWNLOAD_DELAY针对ip而不是网站
CONCURRENT_REQUESTS_PER_IP = 16
- 是否携带cookkie 默认为True
COOKIES_ENABLED = False
- 跟踪cookies,默认情况为False
COOKIES_DEBUG = False
设置日志信息
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"
- 是一个终端的扩展插件
TELNETCONSOLE_ENABLED = False
- 设置默认的请求头
DEFAULT_REQUEST_HEADERS = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2864.400'
}
- 设置和激活爬虫中间件
SPIDER_MIDDLEWARES = { 'downloadmiddlewares.middlewares.DownloadmiddlewaresSpiderMiddleware': 543,
}
- 设置和激活下载中间件,后面的数字表示优先级
DOWNLOADER_MIDDLEWARES = {
'downloadmiddlewares.middlewares.UserAgentDownloadMiddleware':543
}
- 设置扩展
EXTENSIONS = {
'scrapy.extensions.telnet.TelnetConsole': None,
}
- 设置和激活管道文件,后面数字表示优先级
ITEM_PIPELINES = {
'downloadmiddlewares.pipelines.DownloadmiddlewaresPipeline': 300,
}
自动限速扩展(上一个请求和下一个请求之间的时间是不固定的
- 默认情况下,自动限速扩展是关闭的:AUTOTHROTTLE_ENABLED = False
AUTOTHROTTLE_ENABLED = True
- 初始的下载延时,默认5秒
AUTOTHROTTLE_START_DELAY = 5
- 最大下载延时
AUTOTHROTTLE_MAX_DELAY = 60
- 针对于网站的最大并行请求数量
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
- 调试模式:默认为False,未开启
AUTOTHROTTLE_DEBUG = False
- 设置数据缓存,默认未开启
HTTPCACHE_ENABLED = True
- 设置缓存超时时间,默认为0,表示永久有效
HTTPCACHE_EXPIRATION_SECS = 0
- 设置缓存数据的存储路径
HTTPCACHE_DIR = 'httpcache'
- 忽略某些状态码的请求结果
HTTPCACHE_IGNORE_HTTP_CODES = []
- 开启缓存的扩展插件
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'