設定ua,來模拟浏覽器請求
#USER_AGENT = 'downloadmiddlerware (+http://www.yourdomain.com)'
設定請求的最大并發資料(下載下傳器) 預設是16
#CONCURRENT_REQUESTS = 32
設定請求的下載下傳延時,預設為0
#DOWNLOAD_DELAY = 3
設定網站的最大并發請求數量,預設是8
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
設定某個ip的最大并發請求數量,預設是0
如果非0
1.CONCURRENT_REQUESTS_PER_DOMAIN不生效,
這時候請求的并發數量将針對于ip,而不是網站了
2.設定的DOWNLOAD_DELAY就是正對于ip而不是網站了
CONCURRENT_REQUESTS_PER_IP = 16
關于日志資訊的設定
LOG_FILE = 'xxx.log'
LOG_LEVEL = 'INFO/DEBUG/....'
是一個終端的擴充插件
#TELNETCONSOLE_ENABLED = False
設定預設的請求頭(cookies資訊不要放在這裡)
DEFAULT_REQUEST_HEADERS = {
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
# 'Accept-Language': 'en',
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36',
}
設定和激活爬蟲中間件
#SPIDER_MIDDLEWARES = {
# 'downloadmiddlerware.middlewares.DownloadmiddlerwareSpiderMiddleware': 543,
#}
設定和激活下載下傳中間件(後面的數字表示優先級)
DOWNLOADER_MIDDLEWARES = {
# 'downloadmiddlerware.middlewares.DownloadmiddlerwareDownloaderMiddleware': 543,
# 'downloadmiddlerware.middlewares.UserAgentDownloadMiddlerware':543,
'downloadmiddlerware.middlewares.SeleniumDownloadMiddlerWare':543,
}
設定擴充
#EXTENSIONS = {
# 'scrapy.extensions.telnet.TelnetConsole': None,
#}
設定和激活管道檔案(後面的數字表示優先級)
#ITEM_PIPELINES = {
# 'downloadmiddlerware.pipelines.DownloadmiddlerwarePipeline': 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'
設定去重元件,使用的是scrapy_redis的去重元件,而不再使用scrapy架構自己的去重元件了
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
設定排程器,使用的是scrapy_redis重寫的排程器,而不再使用scrapy架構自帶的排程器了
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
可以實作斷點爬取(請求的記錄不會丢失,會存儲在redis資料庫中,不會清除redis的任務隊列)
SCHEDULER_PERSIST = True
設定任務隊列的模式
SpiderPriorityQueue是scrapy_redis預設使用的隊列模式(有自己的優先級)
SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"
使用了隊列的形式,任務先進先出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderQueue"
采用了棧的形式,任務先進後出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderStack"
`
ITEM_PIPELINES = {
'example.pipelines.ExamplePipeline': 300,
# 實作這個管道,可以将爬蟲端擷取的item資料,統一儲存在redis資料庫中
'scrapy_redis.pipelines.RedisPipeline': 400,
}
指定要存儲的redis資料庫的主機ip
REDIS_HOST = '127.0.0.1'
指定redis資料庫主機的端口
REDIS_PORT = 6379
轉自:https://www.jianshu.com/p/7bc1b21d8073