Scrapy爬蟲入門教程十三 Settings(設定)
開發環境:
Python 3.6.0 版本
(當前最新)
Scrapy 1.3.2 版本
(當前最新)
設定
Scrapy設定允許您自定義所有Scrapy元件的行為,包括核心,擴充套件,管道和爬蟲本身。
設定的基礎結構提供了鍵值對映的全域性名稱空間,程式碼可以使用它從中提取配置值。可以通過不同的機制來填充設定,這將在下面描述。
這些設定也是選擇當前活動Scrapy專案的機制(如果您有很多)。
有關可用內建設定的列表,請參閱:內建設定參考。
指定設定
當你使用Scrapy,你必須告訴它你使用哪些設定。您可以通過使用環境變數來執行此操作SCRAPY_SETTINGS_MODULE
值SCRAPY_SETTINGS_MODULE
應該在Python路徑語法中,例如 myproject.settings
。請注意,設定模組應該在Python 匯入搜尋路徑上。
填充設定
可以使用不同的機制來填充設定,每個機制具有不同的優先順序。這裡是按優先順序降序排列的列表:
- 命令列選項(最高優先順序)
- 每個爬蟲的設定
- 專案設定模組
- 每命令的預設設定
- 預設全域性設定(優先順序較低)
這些設定源的數量在內部處理,但可以使用API呼叫進行手動處理。請參閱 設定API主題以供參考。
這些機制在下面更詳細地描述。
1.命令列選項
命令列提供的引數是最優先的引數,覆蓋任何其他選項。您可以使用-s
--set
)命令列選項顯式覆蓋一個(或多個)設定。
例:
scrapy crawl myspider -s LOG_FILE=scrapy.log
2.每個爬蟲的設定
爬蟲(請參閱爬蟲章節以供參考)可以定義自己的設定,這些設定將優先並覆蓋專案。他們可以通過設定custom_settings
屬性來實現:
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'SOME_SETTING': 'some value',
}
3.專案設定模組
專案設定模組是Scrapy專案的標準配置檔案,它將填充大多數自定義設定。對於標準的Scrapy專案,這意味著您將新增或更改settings.py
4.每命令的預設設定
每個Scrapy工具命令都可以有自己的預設設定,覆蓋全域性預設設定。這些自定義命令設定default_settings
在命令類的屬性中指定。
5.預設全域性設定
全域性預設值位於scrapy.settings.default_settings
模組中,並記錄在內建設定參考部分中。
如何訪問設定
在爬蟲中,設定可通過self.settings以下方式獲得:
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
注意
該settings
爬蟲初始化後的屬性是在基類爬蟲設定。如果你想在初始化之前使用設定(例如,在你的爬蟲的__init__()
方法),你需要覆蓋該 from_crawler()
方法。
可以scrapy.crawler.Crawler.settings
通過傳遞到from_crawler
擴充套件,中介軟體和專案管道中的方法的爬網程式的屬性訪問設定:
class MyExtension(object):
def __init__(self, log_is_enabled=False):
if log_is_enabled:
print("log is enabled!")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
設定物件可以像dict
(例如, settings['LOG_ENABLED']
)一樣使用,但通常首選使用SettingsAPI
提供的方法之一,以您需要的格式提取設定,以避免型別錯誤。
設定名稱的原因
設定名稱通常以它們配置的元件為字首。例如,對於一個虛構的robots.txt分機正確的設定的名稱將是 ROBOTSTXT_ENABLED
,ROBOTSTXT_OBEY
,ROBOTSTXT_CACHEDIR
等。
內建設定參考
以下是所有可用Scrapy設定的列表,按字母順序,以及其預設值和適用範圍。
範圍(如果可用)顯示設定在哪裡使用,如果它繫結到任何特定元件。在這種情況下,將顯示該元件的模組,通常是擴充套件,中介軟體或管道。這也意味著必須啟用元件才能使設定具有任何效果。
AWS_ACCESS_KEY_ID
預設: None
AWS_SECRET_ACCESS_KEY
預設: None
由需要訪問Amazon Web服務的程式碼使用的AWS金鑰,例如S3源儲存後端。
BOT_NAME
預設: 'scrapybot'
此Scrapy專案實施的bot的名稱(也稱為專案名稱)。這將用於預設情況下構造User-Agent,也用於日誌記錄。
當您使用startproject
命令建立專案時,它會自動填充您的專案名稱。
CONCURRENT_ITEMS
預設: 100
在項處理器(也稱為專案管道)中並行處理的併發專案的最大數量(每個響應)。
CONCURRENT_REQUESTS
預設: 16
將由Scrapy下載程式執行的併發(即同時)請求的最大數量。
CONCURRENT_REQUESTS_PER_DOMAIN
預設: 8
將對任何單個域執行的併發(即同時)請求的最大數量。
參見:AutoThrottle擴充套件及其 AUTOTHROTTLE_TARGET_CONCURRENCY
選項。
CONCURRENT_REQUESTS_PER_IP
預設: 0
將對任何單個IP執行的併發(即同時)請求的最大數量。如果非零,CONCURRENT_REQUESTS_PER_DOMAIN
則忽略該 設定,而改為使用此設定。換句話說,併發限制將應用於每個IP,而不是每個域。
此設定也會影響DOWNLOAD_DELAY
和 AutoThrottle擴充套件:如果CONCURRENT_REQUESTS_PER_IP
非零,下載延遲是強制每IP,而不是每個域。
DEFAULT_ITEM_CLASS
預設: 'scrapy.item.Item'
DEFAULT_REQUEST_HEADERS
預設:
{
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
用於Scrapy HTTP請求的預設標頭。他們居住在 DefaultHeadersMiddleware
。
DEPTH_LIMIT
預設: 0
範圍: scrapy.spidermiddlewares.depth.DepthMiddleware
允許抓取任何網站的最大深度。如果為零,則不施加限制。
DEPTH_PRIORITY
預設: 0
範圍: scrapy.spidermiddlewares.depth.DepthMiddleware
用於根據深度調整請求優先順序的整數:
如果為零(預設),則不從深度進行優先順序調整
正值將降低優先順序,即,較高深度請求將被稍後處理 ; 這通常用於做廣度優先爬網(BFO)
負值將增加優先順序,即,較高深度請求將被更快地處理(DFO)
參見:Scrapy是否以廣度優先或深度優先順序爬行?關於調整BFO或DFO的Scrapy。
注意
此設定以與其他優先順序設定 和相反的方式調整優先順序。REDIRECT_PRIORITY_ADJUSTRETRY_PRIORITY_ADJUST
DEPTH_STATS
預設: True
範圍: scrapy.spidermiddlewares.depth.DepthMiddleware
是否收集最大深度統計。
DEPTH_STATS_VERBOSE
預設: False
範圍: scrapy.spidermiddlewares.depth.DepthMiddleware
是否收集詳細的深度統計資訊。如果啟用此選項,則在統計資訊中收集每個深度的請求數。
DNSCACHE_ENABLED
預設: True
是否啟用DNS記憶體快取。
DNSCACHE_SIZE
預設: 10000
DNS記憶體快取大小。
DNS_TIMEOUT
預設: 60
以秒為單位處理DNS查詢的超時。支援浮點。
DOWNLOADER
預設: 'scrapy.core.downloader.Downloader'
用於抓取的下載器。
DOWNLOADER_HTTPCLIENTFACTORY
預設: 'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'
定義protocol.ClientFactory
用於HTTP / 1.0連線(for HTTP10DownloadHandler
)的Twisted
類。
注意
HTTP / 1.0現在很少使用,所以你可以安全地忽略這個設定,除非你使用Twisted <11.1,或者如果你真的想使用HTTP / 1.0和覆蓋DOWNLOAD_HANDLERS_BASE
相應的http(s)
方案,即到 'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler'
。
DOWNLOADER_CLIENTCONTEXTFACTORY
預設: 'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'
表示要使用的ContextFactory
的類路徑。
這裡,“ContextFactory”是用於SSL / TLS上下文的Twisted術語,定義要使用的TLS / SSL協議版本,是否執行證書驗證,或者甚至啟用客戶端驗證(以及各種其他事情)。
注意
Scrapy預設上下文工廠不執行遠端伺服器證書驗證。這通常對於網路刮削是很好的。
如果您需要啟用遠端伺服器證書驗證,Scrapy還有另一個上下文工廠類,您可以設定, 'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'
使用平臺的證書來驗證遠端端點。 僅當使用Twisted> = 14.0時,此選項才可用。
如果你使用一個自定義的ContextFactory,確保它接受一個method
引數在init(這是OpenSSL.SSL
方法對映DOWNLOADER_CLIENT_TLS_METHOD
)。
DOWNLOADER_CLIENT_TLS_METHOD
預設: 'TLS'
使用此設定可自定義預設HTTP / 1.1下載程式使用的TLS / SSL方法。
此設定必須是以下字串值之一:
'TLS'
:對映到OpenSSLTLS_method()
(akaSSLv23_method()
),允許協議協商,從平臺支援的最高開始; 預設,推薦'TLSv1.0'
:此值強制HTTPS連線使用TLS版本1.0; 如果你想要Scrapy <1.1的行為,設定這個'TLSv1.1'
:強制TLS版本1.1'TLSv1.2'
:強制TLS版本1.2'SSLv3'
:強制SSL版本3**(不推薦)**
注意
我們建議您使用PyOpenSSL> = 0.13和Twisted> = 0.13或以上(如果可以,Twisted> = 14.0)。
DOWNLOADER_MIDDLEWARES
預設:: {}
包含在您的專案中啟用的下載器中介軟體及其順序的字典。有關更多資訊,請參閱啟用下載器中介軟體。
DOWNLOADER_MIDDLEWARES_BASE
預設:
{
'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100,
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300,
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350,
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 400,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 500,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 550,
'scrapy.downloadermiddlewares.ajaxcrawl.AjaxCrawlMiddleware': 560,
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware': 580,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 590,
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 600,
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750,
'scrapy.downloadermiddlewares.stats.DownloaderStats': 850,
'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900,
}
包含Scrapy中預設啟用的下載器中介軟體的字典。低訂單更靠近發動機,高訂單更接近下載器。您不應該在專案中修改此設定,DOWNLOADER_MIDDLEWARES
而應修改 。有關更多資訊,請參閱 啟用下載器中介軟體。
DOWNLOADER_STATS
預設: True
是否啟用下載器統計資訊收集。
DOWNLOAD_DELAY
預設: 0
下載器在從同一網站下載連續頁面之前應等待的時間(以秒為單位)。這可以用於限制爬行速度,以避免擊中伺服器太難。支援小數。例:
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
此設定也受RANDOMIZE_DOWNLOAD_DELAY
設定(預設情況下啟用)的影響。預設情況下,Scrapy不會在請求之間等待固定的時間量,而是使用0.5 * DOWNLOAD_DELAY
和1.5 * 之間的隨機間隔DOWNLOAD_DELAY
。
當CONCURRENT_REQUESTS_PER_IP
為非零時,每個IP地址而不是每個域強制執行延遲。
您還可以通過設定download_delay
spider屬性來更改每個爬蟲的此設定。
DOWNLOAD_HANDLERS
預設: {}
包含在您的專案中啟用的請求下載器處理程式的dict。參見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' ,
'ftp' : 'scrapy.core.downloader.handlers.ftp.FTPDownloadHandler' ,
}
包含Scrapy中預設啟用的請求下載處理程式的字典。您不應該在專案中修改此設定,DOWNLOAD_HANDLERS
而應修改 。
您可以通過在其中None
分配URI方案來禁用這些下載處理程式DOWNLOAD_HANDLERS
。例如,要禁用內建的FTP處理程式(無替換),請將其放置在settings.py
:
DOWNLOAD_HANDLERS = {
'ftp': None,
}
DOWNLOAD_TIMEOUT
預設: 180
下載器在超時前等待的時間量(以秒為單位)。
注意
可以使用download_timeout
Spider屬性和每個請求使用download_timeout
Request.meta
鍵為每個爬蟲設定此超時。
DOWNLOAD_MAXSIZE
預設值:1073741824(1024MB)
下載器將下載的最大響應大小(以位元組為單位)。
如果要禁用它設定為0。
注意
可以使用download_maxsize
Spider屬性和每個請求使用download_maxsize
Request.meta鍵為每個爬蟲設定此大小。
此功能需要Twisted> = 11.1。
DOWNLOAD_WARNSIZE
預設值:33554432(32MB)
下載程式將開始警告的響應大小(以位元組為單位)。
如果要禁用它設定為0。
注意
可以使用download_warnsize
Spider屬性和每個請求使用download_warnsize
Request.meta鍵為每個爬蟲設定此大小。
此功能需要Twisted> = 11.1。
DUPEFILTER_CLASS
預設: 'scrapy.dupefilters.RFPDupeFilter'
用於檢測和過濾重複請求的類。
預設(RFPDupeFilter)過濾器基於請求指紋使用該scrapy.utils.request.request_fingerprint
函式。為了改變重複檢查的方式,你可以子類化RFPDupeFilter
並重載它的request_fingerprint
方法。這個方法應該接受scrapy Request
物件並返回其指紋(一個字串)。
DUPEFILTER_DEBUG
預設: False
預設情況下,RFPDupeFilter
只記錄第一個重複的請求。設定DUPEFILTER_DEBUG
為True
將使其記錄所有重複的請求。
EDITOR
預設值:取決於環境
用於使用edit命令編輯爬蟲的編輯器。它預設為EDITOR環境變數,如果設定。否則,它預設為vi(在Unix系統上)或IDLE編輯器(在Windows上)。
EXTENSIONS
預設:: {}
包含專案中啟用的副檔名及其順序的字典。
EXTENSIONS_BASE
預設:
{
'scrapy.extensions.corestats.CoreStats': 0,
'scrapy.extensions.telnet.TelnetConsole': 0,
'scrapy.extensions.memusage.MemoryUsage': 0,
'scrapy.extensions.memdebug.MemoryDebugger': 0,
'scrapy.extensions.closespider.CloseSpider': 0,
'scrapy.extensions.feedexport.FeedExporter': 0,
'scrapy.extensions.logstats.LogStats': 0,
'scrapy.extensions.spiderstate.SpiderState': 0,
'scrapy.extensions.throttle.AutoThrottle': 0,
}
包含預設情況下在Scrapy中可用的副檔名及其順序的字典。此設定包含所有穩定的內建擴充套件。請記住,其中一些需要通過設定啟用。
FEED_TEMPDIR
Feed Temd dir允許您在使用FTP源儲存和 Amazon S3上傳之前設定自定義資料夾以儲存搜尋器臨時檔案。
ITEM_PIPELINES
預設: {}
包含要使用的專案管道及其順序的字典。順序值是任意的,但通常將它們定義在0-1000範圍內。較低訂單處理較高訂單前。
例:
ITEM_PIPELINES = {
'mybot.pipelines.validate.ValidateMyItem': 300,
'mybot.pipelines.validate.StoreMyItem': 800,
}
ITEM_PIPELINES_BASE
預設: {}
包含Scrapy中預設啟用的管道的字典。您不應該在專案中修改此設定,ITEM_PIPELINES
而應修改。
LOG_ENABLED
預設: True
是否啟用日誌記錄。
LOG_ENCODING
預設: 'utf-8'
用於記錄的編碼。
LOG_FILE
預設: None
用於記錄輸出的檔名。如果None,將使用標準誤差。
LOG_FORMAT
預設: '%(asctime)s [%(name)s] %(levelname)s: %(message)s'
用於格式化日誌訊息的字串。有關可用佔位符的完整列表,請參閱Python日誌記錄文件。
LOG_DATEFORMAT
預設: '%Y-%m-%d %H:%M:%S'
用於格式化日期/時間的字串,佔位符的%(asctime)s擴充套件LOG_FORMAT
。有關可用指令的完整列表,請參閱Python datetime文件。
LOG_LEVEL
預設: 'DEBUG'
記錄的最低級別。可用級別為:CRITICAL
,ERROR
,WARNING
,INFO
,DEBUG
。有關詳細資訊,請參閱日誌。
LOG_STDOUT
預設: False
如果True
,您的程序的所有標準輸出(和錯誤)將被重定向到日誌。例如,如果它將出現在Scrapy日誌中。print 'hello'
LOG_SHORT_NAMES
預設: False
如果True
,日誌將僅包含根路徑。如果設定為,False
則它顯示負責日誌輸出的元件
MEMDEBUG_ENABLED
預設: False
是否啟用記憶體除錯。
MEMDEBUG_NOTIFY
預設: []
當啟用記憶體除錯時,如果此設定不為空,則會將記憶體報告發送到指定的地址,否則報告將寫入日誌。
例:
MEMDEBUG_NOTIFY = ['user@example.com']
MEMUSAGE_ENABLED
預設: False
範圍: scrapy.extensions.memusage
是否啟用記憶體使用擴充套件,當超過記憶體限制時關閉Scrapy程序,並在發生這種情況時通過電子郵件通知。
請參閱記憶體使用擴充套件。
MEMUSAGE_LIMIT_MB
預設: 0
範圍: scrapy.extensions.memusage
在關閉Scrapy之前允許的最大記憶體量(以兆位元組為單位)(如果MEMUSAGE_ENABLED
為True
)。如果為零,則不執行檢查。
MEMUSAGE_CHECK_INTERVAL_SECONDS
新版本1.1。
預設: 60.0
範圍: scrapy.extensions.memusage
該記憶體使用擴充套件 檢查當前記憶體使用情況,相對於限制由設定 MEMUSAGE_LIMIT_MB
和MEMUSAGE_WARNING_MB
在固定的時間間隔。
這將設定這些間隔的長度(以秒為單位)。
MEMUSAGE_NOTIFY_MAIL
預設: False
範圍: scrapy.extensions.memusage
要達到記憶體限制時通知的電子郵件列表。
例:
MEMUSAGE_NOTIFY_MAIL = ['user@example.com']
MEMUSAGE_REPORT
預設: False
範圍: scrapy.extensions.memusage
是否在每個爬蟲關閉後傳送記憶體使用報告。
請參閱記憶體使用擴充套件。
MEMUSAGE_WARNING_MB
預設: 0
範圍: scrapy.extensions.memusage
在傳送警告電子郵件通知之前,要允許的最大記憶體量(以兆位元組為單位)。如果為零,則不會產生警告。
NEWSPIDER_MODULE
預設: ''
模組在哪裡使用genspider
命令建立新的爬蟲。
例:
NEWSPIDER_MODULE = 'mybot.spiders_dev'
RANDOMIZE_DOWNLOAD_DELAY
預設: True
如果啟用,Scrapy會在從同一網站獲取請求時等待隨機時間(介於0.5 * DOWNLOAD_DELAY
和1.5 *之間DOWNLOAD_DELAY
)。
該隨機化降低了由分析請求的站點檢測(並隨後阻塞)爬行器的機會,所述站點在它們的請求之間的時間內尋找統計上顯著的相似性。
隨機化策略與wget –random-wait選項使用的策略相同。
如果DOWNLOAD_DELAY
為零(預設),此選項不起作用。
REACTOR_THREADPOOL_MAXSIZE
預設: 10
Twisted Reactor執行緒池大小的上限。這是各種Scrapy元件使用的常見多用途執行緒池。執行緒DNS解析器,BlockingFeedStorage,S3FilesStore僅舉幾個例子。如果您遇到阻塞IO不足的問題,請增加此值。
REDIRECT_MAX_TIMES
預設: 20
定義請求可重定向的最長時間。在此最大值之後,請求的響應被原樣返回。我們對同一個任務使用Firefox預設值。
REDIRECT_PRIORITY_ADJUST
預設: +2
範圍: scrapy.downloadermiddlewares.redirect.RedirectMiddleware
相對於原始請求調整重定向請求優先順序:
- 正優先順序調整(預設)意味著更高的優先順序。
- 負優先順序調整意味著較低優先順序。
RETRY_PRIORITY_ADJUST
預設: -1
範圍: scrapy.downloadermiddlewares.retry.RetryMiddleware
調整相對於原始請求的重試請求優先順序:
- 正優先順序調整意味著更高的優先順序。
- 負優先順序調整(預設)表示較低優先順序。
ROBOTSTXT_OBEY
預設: False
範圍: scrapy.downloadermiddlewares.robotstxt
如果啟用,Scrapy會尊重robots.txt政策。有關詳細資訊,請參閱 RobotsTxtMiddleware。
注意
雖然預設值是False
由於歷史原因,預設情況下在settings.py檔案中通過命令生成此選項。scrapy startproject
SCHEDULER
預設: 'scrapy.core.scheduler.Scheduler'
用於爬網的排程程式。
SCHEDULER_DEBUG
預設: False
設定True將記錄有關請求排程程式的除錯資訊。如果請求無法序列化到磁碟,則當前日誌(僅一次)。Stats counter(scheduler/unserializable
)跟蹤發生的次數。
日誌中的示例條目:
1956-01-31 00:00:00+0800 [scrapy.core.scheduler] ERROR: Unable to serialize request:
<GET http://example.com> - reason: cannot serialize <Request at 0x9a7c7ec>
(type Request)> - no more unserializable requests will be logged
(see 'scheduler/unserializable' stats counter)
SCHEDULER_DISK_QUEUE
預設: 'scrapy.squeues.PickleLifoDiskQueue'
將由排程程式使用的磁碟佇列的型別。其它可用的型別有 scrapy.squeues.PickleFifoDiskQueue
,scrapy.squeues.MarshalFifoDiskQueue
, scrapy.squeues.MarshalLifoDiskQueue
。
SCHEDULER_MEMORY_QUEUE
預設: 'scrapy.squeues.LifoMemoryQueue'
排程程式使用的記憶體中佇列的型別。其他可用型別是: scrapy.squeues.FifoMemoryQueue
。
SCHEDULER_PRIORITY_QUEUE
預設: 'queuelib.PriorityQueue'
排程程式使用的優先順序佇列的型別。
SPIDER_CONTRACTS
預設:: {}
包含在專案中啟用的爬蟲契約的dict,用於測試爬蟲。有關更多資訊,請參閱爬蟲合同。
SPIDER_CONTRACTS_BASE
預設:
{
'scrapy.contracts.default.UrlContract' : 1,
'scrapy.contracts.default.ReturnsContract': 2,
'scrapy.contracts.default.ScrapesContract': 3,
}
包含Scrapy中預設啟用的scrapy合約的dict。您不應該在專案中修改此設定,SPIDER_CONTRACTS 而應修改。有關更多資訊,請參閱爬蟲合同。
您可以通過None
將其中的類路徑指定為禁用任何這些合同SPIDER_CONTRACTS
。例如,要禁用內建 ScrapesContract
,將此放在您的settings.py
:
SPIDER_CONTRACTS = {
'scrapy.contracts.default.ScrapesContract': None,
}
SPIDER_LOADER_CLASS
預設: 'scrapy.spiderloader.SpiderLoader'
SPIDER_LOADER_WARN_ONLY
新版本1.3.3。
預設: False
預設情況下,當scrapy嘗試從中匯入爬蟲類時SPIDER_MODULES
,如果有任何ImportError
異常,它將大聲失敗。但是你可以選擇沉默此異常,並通過設定將其變成一個簡單的警告。SPIDER_LOADER_WARN_ONLY = True
注意
有些scrapy命令使用此設定執行True
已經(即他們只會發出警告並不會失敗),因為他們實際上並不需要載入爬蟲類的工作: scrapy runspider
, scrapy settings
, scrapy startproject
, scrapy version
.
SPIDER_MIDDLEWARES
預設:: {}
包含在您的專案中啟用的爬蟲中介軟體的字典及其順序。有關更多資訊,請參閱啟用爬蟲中介軟體。
SPIDER_MIDDLEWARES_BASE
預設:
{
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
'scrapy.spidermiddlewares.referer.RefererMiddleware': 700,
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware': 800,
'scrapy.spidermiddlewares.depth.DepthMiddleware': 900,
}
包含在Scrapy中預設啟用的爬蟲中介軟體的字典及其順序。低訂單更靠近發動機,高訂單更接近爬蟲。有關更多資訊,請參閱啟用爬蟲中介軟體。
SPIDER_MODULES
預設: []
Scrapy將尋找爬蟲的模組列表。
例:
SPIDER_MODULES = ['mybot.spiders_prod', 'mybot.spiders_dev']
STATS_CLASS
預設: 'scrapy.statscollectors.MemoryStatsCollector'
STATS_DUMP
預設: True
一旦爬蟲完成,轉儲Scrapy統計(到Scrapy日誌)。
更多資訊請參閱:統計資料收集。
STATSMAILER_RCPTS
預設:( []
空列表)
爬蟲完成刮擦後傳送Scrapy stats。檢視 StatsMailer更多資訊。
TELNETCONSOLE_ENABLED
預設: True
布林值,指定是否 啟用telnet控制檯(如果其副檔名也啟用)。
TELNETCONSOLE_PORT
預設: [6023, 6073]
用於telnet控制檯的埠範圍。如果設定為None或0,則使用動態分配的埠。有關詳細資訊,請參閱 telnet控制檯。
TEMPLATES_DIR
預設值:templates
dir裡面的scrapy模組
使用startproject
命令和新爬蟲建立新專案時使用命令查詢模板的目錄 genspider
。
專案名稱不得與子目錄中的自定義檔案或目錄的名稱衝突project
。
URLLENGTH_LIMIT
預設: 2083
範圍: spidermiddlewares.urllength
USER_AGENT
預設: "Scrapy/VERSION (+http://scrapy.org)"
檢索時使用的預設使用者代理,除非被覆蓋。
其他地方記錄的設定:
以下設定在其他地方記錄,請檢查每個具體案例,瞭解如何啟用和使用它們。
- AJAXCRAWL_ENABLED
- AUTOTHROTTLE_DEBUG
- AUTOTHROTTLE_ENABLED
- AUTOTHROTTLE_MAX_DELAY
- AUTOTHROTTLE_START_DELAY
- AUTOTHROTTLE_TARGET_CONCURRENCY
- CLOSESPIDER_ERRORCOUNT
- CLOSESPIDER_ITEMCOUNT
- CLOSESPIDER_PAGECOUNT
- CLOSESPIDER_TIMEOUT
- COMMANDS_MODULE
- COMPRESSION_ENABLED
- COOKIES_DEBUG
- COOKIES_ENABLED
- FEED_EXPORTERS
- FEED_EXPORTERS_BASE
- FEED_EXPORT_ENCODING
- FEED_EXPORT_FIELDS
- FEED_FORMAT
- FEED_STORAGES
- FEED_STORAGES_BASE
- FEED_STORE_EMPTY
- FEED_URI
- FILES_EXPIRES
- FILES_RESULT_FIELD
- FILES_STORE
- FILES_STORE_S3_ACL
- FILES_URLS_FIELD
- HTTPCACHE_ALWAYS_STORE
- HTTPCACHE_DBM_MODULE
- HTTPCACHE_DIR
- HTTPCACHE_ENABLED
- HTTPCACHE_EXPIRATION_SECS
- HTTPCACHE_GZIP
- HTTPCACHE_IGNORE_HTTP_CODES
- HTTPCACHE_IGNORE_MISSING
- HTTPCACHE_IGNORE_RESPONSE_CACHE_CONTROLS
- HTTPCACHE_IGNORE_SCHEMES
- HTTPCACHE_POLICY
- HTTPCACHE_STORAGE
- HTTPERROR_ALLOWED_CODES
- HTTPERROR_ALLOW_ALL
- HTTPPROXY_AUTH_ENCODING
- IMAGES_EXPIRES
- IMAGES_MIN_HEIGHT
- IMAGES_MIN_WIDTH
- IMAGES_RESULT_FIELD
- IMAGES_STORE
- IMAGES_STORE_S3_ACL
- IMAGES_THUMBS
- IMAGES_URLS_FIELD
- MAIL_FROM
- MAIL_HOST
- MAIL_PASS
- MAIL_PORT
- MAIL_SSL
- MAIL_TLS
- MAIL_USER
- METAREFRESH_ENABLED
- METAREFRESH_MAXDELAY
- REDIRECT_ENABLED
- REDIRECT_MAX_TIMES
- REFERER_ENABLED
- RETRY_ENABLED
- RETRY_HTTP_CODES
- RETRY_TIMES
- TELNETCONSOLE_HOST
- TELNETCONSOLE_PORT