settings配置
-BOT_NAME
爬虫名字
-USER_AGENT
请求头
-ROBOTTXT_OBEY
是否遵守ROBOT.txt
True遵守
False不遵守
-CONCURRENT_REQUESTS
并发请求数 一次发出的请求数,默认为16个
-DOWNLOAD_DELAY
下载延迟 DOWNLOAD_DELAY = 3 每三秒执行一次
-CONCURRENT_REQUESTS_PER_DOMAIN = 16
针对每一个域名发16个请求
-CONCURRENT_REQUESTS_PER_IP = 16
针对每一个IP发16个请求
-COOKIES_ENABLED = False
是否爬取cookies默认为True
-COOKIES_DEBUG = False
可以看到每个请求的cookies scrapy crawler chouti
-TELNETCONSOLE_ENABLED = False
先在settings下把TELNETCONSOLE_ENABLED = True
在cmd下telnet 127.0.0.1 6023然后输入est()监听此时爬虫的状态,例如现在爬取几个了等详细信息。
-DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
默认的请求头
-SPIDER_MIDDLEWARES = {
'shan.middlewares.ShanSpiderMiddleware': 543,
}
爬虫中间件
-DOWNLOADER_MIDDLEWARES = {
'shan.middlewares.ShanDownloaderMiddleware': 543,
}
下载中间件
-AUTOTHROTTLE_ENABLED = True
智能请求延时是否开启
-AUTOTHROTTLE_START_DELAY = 5
第一个请求延迟5秒
-AUTOTHROTTLE_MAX_DELAY = 60
最高延迟60秒
-AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
自动调整延迟时间的上下波动
-AUTOTHROTTLE_DEBUG = False
-HTTPCACHE_POLICY = "scrapy.extensions.httpcache.DummyPolicy"
缓存策略:所有请求均缓存,下次在请求直接访问原来的缓存即可,简单粗暴,不推荐。
-HTTPCACHE_POLICY = "scrapy.extensions.httpcache.RFC2616Policy"
缓存策略:根据Http响应头:Cache-Control、Last-Modified 等进行缓存的策略,可以全部自定义,推荐。
-HTTPCACHE_ENABLED = True
启用缓存 缓存文件包括响应体、响应头、请求体、请求头。
下次再发送请求时相同的请求可以从缓存中提取,提升效率。
-HTTPCACHE_EXPIRATION_SECS = 0
缓存超时时间
-HTTPCACHE_DIR = 'httpcache'
缓存的路径
-HTTPCACHE_IGNORE_HTTP_CODES = []
可以设定忽略的状态码,如果有设定的状态码出现就不做缓存处理。
-HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
缓存存储的插件,可以改成自己自定义的插件
-DEPTH_PRIORITY = 0
广度优先还是深度优先 1为广度优先
-DUPEFILTER_CLASS = "shan.duplication.RepeatFilter"
访问去重
-ITEM_PIPELINES = {'shan.pipelines.ShanPipeline': 300,}
pipline优先级 后面数字越小优先级越高。