天天看點

Scrapy_Redis Settings.py設定檔案

設定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