1. 程式人生 > >Scrapy框架中setting 中的欄位含義

Scrapy框架中setting 中的欄位含義

一、setting 自動生成的內容含義

# -*- coding: utf-8 -*-

# Scrapy settings for taoCarTest project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     https://doc.scrapy.org/en/latest/topics/settings.html
# https://doc.scrapy.org/en/latest/topics/downloader-middleware.html # https://doc.scrapy.org/en/latest/topics/spider-middleware.html BOT_NAME = 'taoCarTest' SPIDER_MODULES = ['taoCarTest.spiders'] NEWSPIDER_MODULE = 'taoCarTest.spiders' # Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'taoCarTest (+http://www.yourdomain.com)' # Obey robots.txt rules '''如果啟用,Scrapy將會尊重 robots.txt策略''' ROBOTSTXT_OBEY = False '''Scrapy downloader 併發請求(concurrent requests)的最大值''' # Configure maximum concurrent requests performed by Scrapy (default: 16) #CONCURRENT_REQUESTS = 32 # Configure a delay for requests for the same website (default: 0)
# See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs ''' 下載器在下載同一個網站下一個頁面前需要等待的時間。 該選項可以用來限制爬取速度, 減輕伺服器壓力。同時也支援小數: 該設定影響(預設啟用的) RANDOMIZE_DOWNLOAD_DELAY 設定。 預設情況下,Scrapy在兩個請求間不等待一個固定的值, 而是使用0.5到1.5之間的一個隨機值 * DOWNLOAD_DELAY 的結果作為等待間隔。 當 CONCURRENT_REQUESTS_PER_IP 非0時,延遲針對的是每個ip而不是網站。 另外您可以通過spider的 download_delay 屬性為每個spider設定該設定。 ''' #DOWNLOAD_DELAY = 3 # The download delay setting will honor only one of: '''對單個網站進行併發請求的最大值''' #CONCURRENT_REQUESTS_PER_DOMAIN = 16 ''' 對單個IP進行併發請求的最大值。如果非0,則忽略 CONCURRENT_REQUESTS_PER_DOMAIN 設定, 使用該設定。 也就是說,併發限制將針對IP,而不是網站。 該設定也影響 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0, 下載延遲應用在IP而不是網站上。 ''' #CONCURRENT_REQUESTS_PER_IP = 16 # Disable cookies (enabled by default) '''是否啟用cookies middleware.如果關閉,cookies 將不會發送給web server''' #COOKIES_ENABLED = False # Disable Telnet Console (enabled by default) '''表明 telnet 終端(及其外掛)是否啟用布林值''' #TELNETCONSOLE_ENABLED = False # Override the default request headers: '''Scrapy HTTP Request使用的預設header.由DefaultHeadersMiddleware 產生。這裡通常可以自己新增的更完整''' DEFAULT_REQUEST_HEADERS = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', # 'Accept-Language': 'en', } # Enable or disable spider middlewares # See https://doc.scrapy.org/en/latest/topics/spider-middleware.html '''要啟用spider中介軟體,可以將其加入到SPIDER_MIDDLEWARES 設定中。 該是指是一個字典,鍵為中介軟體的路徑,值為中介軟體的順序(order)。如上就是開啟''' #SPIDER_MIDDLEWARES = { # 'taoCarTest.middlewares.TaocartestSpiderMiddleware': 543, #} '''儲存專案中啟用的下載中介軟體及其順序的字典。更多內容請檢視 啟用下載器中介軟體 DOWNLOAER_MIDDLEWARES 設定會與Scrapy定義的 DOWNLOADER_MIDDLEWARES_BASE 設定合併(但不是覆蓋),而後根據順序(order)進行排序 最後得到啟用中介軟體的有序列表:第一個中介軟體是最靠近引擎的,最後一箇中間鍵是最靠近下載器的。 關於如何分配中介軟體的順序請檢視 DOWNLOADER_MIDDLEWARES_BASE 設定, 而後根據您想要放置中介軟體的位置選擇一個值。 由於每個中介軟體執行不同的動作,您的中介軟體可能會依賴於之前(或者之後)執行的中介軟體, 因此順序是很重要的''' # Enable or disable downloader middlewares # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html #DOWNLOADER_MIDDLEWARES = { # 'taoCarTest.middlewares.TaocartestDownloaderMiddleware': 543, #} # Enable or disable extensions # See https://doc.scrapy.org/en/latest/topics/extensions.html #EXTENSIONS = { # 'scrapy.extensions.telnet.TelnetConsole': None, #} # Configure item pipelines # 這裡如果一個專案多個spiders的時候,每次執行的時候每次要在這裡制定一個對應的pipeline ''' 儲存專案中啟用的pipeline及其順序的字典。該字典預設為空,值(value)任意。 不過值(value)習慣設定在0-1000範圍內。 為了相容性,ITEM_PIPELINES 支援列表,不過已經被廢棄了。 ''' # See https://doc.scrapy.org/en/latest/topics/item-pipeline.html ITEM_PIPELINES = { 'taoCarTest.pipelines.TaocartestPipeline': 300, } # Enable and configure the AutoThrottle extension (disabled by default) # See https://doc.scrapy.org/en/latest/topics/autothrottle.html ''' 啟用自動限速下載 AutoThrottle 擴充套件''' #AUTOTHROTTLE_ENABLED = True # The initial download delay '''初始延遲下載(單位/秒)''' #AUTOTHROTTLE_START_DELAY = 5 # The maximum download delay to be set in case of high latencies '''初始延遲下載(單位/秒)''' #AUTOTHROTTLE_MAX_DELAY = 60 # The average number of requests Scrapy should be sending in parallel to # each remote server #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 # Enable showing throttling stats for every response received: '''啟用AUTOThrottle除錯(debug)模式,展示每個接收到的response。 可以通過此來檢視限速引數是如何實時被調整的''' #AUTOTHROTTLE_DEBUG = False # Enable and configure HTTP caching (disabled by default) # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings '''HTTP快取是否開啟。''' #HTTPCACHE_ENABLED = True '''快取的request的超時時間,單位秒。 超過這個時間的快取request將會被重新下載。如果為0,則快取的request將永遠不會超時。''' #HTTPCACHE_EXPIRATION_SECS = 0 '''儲存(底層的)HTTP快取的目錄。如果為空,則HTTP快取將會被關閉。 如果為相對目錄,則相對於專案資料目錄(project data dir)。 更多內容請參考 預設的Scrapy專案結構 。''' #HTTPCACHE_DIR = 'httpcache' '''不快取設定中的HTTP返回值(code)的request。''' #HTTPCACHE_IGNORE_HTTP_CODES = [] '''實現快取儲存後端的類。''' #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

二、setting中預設沒有,但可以新增的內容含義

#一下內容為預設setting.py檔案沒有的欄位,但是可以自己新增

CONCURRENT_ITEMS
'''
預設: 100
Item Processor(即 Item Pipeline) 同時處理(每個response的)item的最大值。
'''

DEFAULT_ITEM_CLASS
'''預設: 'scrapy.item.Item'
the Scrapy shell 中例項化item使用的預設類'''


DEPTH_LIMIT
'''預設: 0
爬取網站最大允許的深度(depth)值。如果為0,則沒有限制'''
DEPTH_PRIORITY
'''預設: 0
整數值。用於根據深度調整request優先順序。
如果為0,則不根據深度進行優先順序調整'''
DEPTH_STATS
'''
預設: True
是否收集最大深度資料。'''
DEPTH_STATS_VERBOSE
'''預設: False
是否收集詳細的深度資料。如果啟用,每個深度的請求數將會被收集在資料中。'''

DOWNLOAD_HANDLERS
'''
預設: {}
儲存專案中啟用的下載處理器(request downloader handler)的字典。 例子請檢視 DOWNLOAD_HANDLERS_BASE 。
DOWNLOAD_HANDLERS_BASE
預設:
{
    'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler',
    'http': 'scrapy.core.downloader.handlers.http.HttpDownloadHandler',
    'https': 'scrapy.core.downloader.handlers.http.HttpDownloadHandler',
    's3': 'scrapy.core.downloader.handlers.s3.S3DownloadHandler',
}
儲存專案中預設啟用的下載處理器(request downloader handler)的字典。 永遠不要在專案中修改該設定,而是修改 DOWNLOADER_HANDLERS 。
如果需要關閉上面的下載處理器,您必須在專案中的 DOWNLOAD_HANDLERS 設定中設定該處理器,併為其賦值為 None 。 例如,關閉檔案下載處理器:
DOWNLOAD_HANDLERS = {
    'file': None,
}'''
DOWNLOAD_TIMEOUT
'''
預設: 180
下載器超時時間(單位: 秒)。'''

LOG
'''
LOG_ENABLED
預設: True
是否啟用logging。
LOG_ENCODING
預設: 'utf-8'
logging使用的編碼。
LOG_FILE
預設: None
logging輸出的檔名。如果為None,則使用標準錯誤輸出(standard error)。
LOG_LEVEL
預設: 'DEBUG'
log的最低級別。可選的級別有: CRITICAL、 ERROR、WARNING、INFO、DEBUG。更多內容請檢視 Logging 。
LOG_STDOUT
預設: False
如果為 True ,程序所有的標準輸出(及錯誤)將會被重定向到log中。例如, 執行 print 'hello' ,其將會在Scrapy log中顯示。'''

RANDOMIZE_DOWNLOAD_DELAY
'''
預設: True
如果啟用,當從相同的網站獲取資料時,Scrapy將會等待一個隨機的值 (0.5到1.5之間的一個隨機值 * DOWNLOAD_DELAY)。
該隨機值降低了crawler被檢測到(接著被block)的機會。某些網站會分析請求, 查詢請求之間時間的相似性。
隨機的策略與 wget --random-wait 選項的策略相同。
若 DOWNLOAD_DELAY 為0(預設值),該選項將不起作用
'''