以下是所有可用的零碎設(shè)置的列表,按字母順序排列,以及它們的默認(rèn)值和應(yīng)用范圍。
如果設(shè)置綁定到任何特定組件,那么范圍(如果可用)將顯示使用該設(shè)置的位置。在這種情況下,將顯示該組件的模塊,通常是擴(kuò)展、中間件或管道。它還意味著必須啟用組件才能使設(shè)置生效。
違約: ?None
?
需要訪問(wèn)的代碼使用的AWS訪問(wèn)密鑰 Amazon Web services ,比如 S3 feed storage backend .
違約: ?None
?
需要訪問(wèn)的代碼使用的AWS密鑰 Amazon Web services ,比如 S3 feed storage backend .
違約: ?None
?
用于類似S3的存儲(chǔ)的端點(diǎn)URL,例如Minio或S3.scality。
違約: ?None
?
如果要禁用與S3或類似S3的存儲(chǔ)進(jìn)行通信的SSL連接,請(qǐng)使用此選項(xiàng)。默認(rèn)情況下將使用SSL。
違約: ?None
?
驗(yàn)證scray和S3或類似S3的存儲(chǔ)之間的SSL連接。默認(rèn)情況下,將進(jìn)行SSL驗(yàn)證。
違約: ?None
?
與AWS客戶端關(guān)聯(lián)的區(qū)域的名稱。
違約: ?None
?
給定的異步事件循環(huán)類的導(dǎo)入路徑。
如果啟用了異步電抗器(請(qǐng)參閱 ?TWISTED_REACTOR
? )此設(shè)置可用于指定要與之一起使用的異步事件循環(huán)。將設(shè)置設(shè)置為所需的異步事件循環(huán)類的導(dǎo)入路徑。如果設(shè)置為 ?None
? 將使用默認(rèn)的異步事件循環(huán)。
如果要使用 ?install_reactor()
? 函數(shù),可以使用 ?event_loop_path
? 參數(shù)指示要使用的事件循環(huán)類的導(dǎo)入路徑。
請(qǐng)注意,事件循環(huán)類必須繼承自 ?asyncio.AbstractEventLoop
? .
違約: ?'scrapybot'
?
這個(gè)項(xiàng)目的名字叫Scrapy。此名稱也將用于日志記錄。
當(dāng)您使用 ?startproject
? 命令。
違約: ?100
?
中并行處理的最大并發(fā)項(xiàng)數(shù)(每個(gè)響應(yīng)) item pipelines .
違約: ?16
?
Scrapy下載程序?qū)?zhí)行的最大并發(fā)(即同時(shí))請(qǐng)求數(shù)。
違約: ?8
?
將對(duì)任何單個(gè)域執(zhí)行的最大并發(fā)(即同時(shí))請(qǐng)求數(shù)。
參見(jiàn): AutoThrottle 擴(kuò)展 及其 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? 選擇權(quán)。
違約: ?0
?
將對(duì)任何單個(gè)IP執(zhí)行的最大并發(fā)(即同時(shí))請(qǐng)求數(shù)。如果非零,則 ?CONCURRENT_REQUESTS_PER_DOMAIN
? 設(shè)置被忽略,而是使用此設(shè)置。換句話說(shuō),并發(fā)限制將應(yīng)用于每個(gè)IP,而不是每個(gè)域。
此設(shè)置還影響 ?DOWNLOAD_DELAY
? 和 AutoThrottle 擴(kuò)展 如果 ?CONCURRENT_REQUESTS_PER_IP
? 是非零的,下載延遲是每個(gè)IP強(qiáng)制執(zhí)行的,而不是每個(gè)域。
違約: ?'scrapy.item.Item'
?
將用于實(shí)例化中的項(xiàng)的默認(rèn)類 the Scrapy shell .
違約:
{
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
用于報(bào)廢HTTP請(qǐng)求的默認(rèn)頭。他們住在 ?DefaultHeadersMiddleware
? .
違約: ?0
?
經(jīng)營(yíng)范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware
?
允許對(duì)任何網(wǎng)站進(jìn)行爬網(wǎng)的最大深度。如果為零,則不施加限制。
違約: ?0
?
經(jīng)營(yíng)范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware
?
用于調(diào)整 ?priority
? A的 ?Request
? 根據(jù)它的深度。
請(qǐng)求的優(yōu)先級(jí)調(diào)整如下:
request.priority = request.priority - ( depth * DEPTH_PRIORITY )
隨著深度的增加,正值為 ?DEPTH_PRIORITY
? 降低請(qǐng)求優(yōu)先級(jí)(BFO),而負(fù)值則提高請(qǐng)求優(yōu)先級(jí)(DFO)。也見(jiàn) Scrapy是以廣度優(yōu)先還是深度優(yōu)先的順序爬行? .
注解
此設(shè)置調(diào)整優(yōu)先級(jí) 以相反的方式 與其他優(yōu)先級(jí)設(shè)置相比 REDIRECT_PRIORITY_ADJUST 和 RETRY_PRIORITY_ADJUST .
違約: ?False
?
經(jīng)營(yíng)范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware
?
是否收集詳細(xì)深度統(tǒng)計(jì)信息。如果啟用此選項(xiàng),則在統(tǒng)計(jì)信息中收集每個(gè)深度的請(qǐng)求數(shù)。
違約: ?True
?
是否啟用DNS內(nèi)存緩存。
違約: ?10000
?
DNS內(nèi)存緩存大小。
2.0 新版功能.
違約: ?'scrapy.resolver.CachingThreadedResolver'
?
用于解析DNS名稱的類。違約 ?scrapy.resolver.CachingThreadedResolver
? 支持通過(guò)指定DNS請(qǐng)求的超時(shí) ?DNS_TIMEOUT
? 設(shè)置,但僅適用于IPv4地址。Scrapy提供了另一種解決方案, ?scrapy.resolver.CachingHostnameResolver
? ,它支持IPv4/IPv6地址,但不使用 ?DNS_TIMEOUT
? 考慮在內(nèi)。
違約: ?60
?
處理DNS查詢的超時(shí)(秒)。支持浮動(dòng)。
違約: ?'scrapy.core.downloader.Downloader'
?
用于爬行的下載程序。
違約: ?'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'
?
定義扭曲 ?protocol.ClientFactory
? 用于HTTP/1.0連接的類(用于 ?HTTP10DownloadHandler
? )
注解
現(xiàn)在很少使用HTTP/1.0,所以您可以安全地忽略此設(shè)置,除非您確實(shí)想使用HTTP/1.0并重寫(xiě) ?DOWNLOAD_HANDLERS
? 對(duì)于 ?http(s)
? 相應(yīng)的計(jì)劃,即 'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler' .
違約: ?'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'
?
表示要使用的ContextFactory的類路徑。
這里,“ContextFactory”是一個(gè)用于SSL/TLS上下文的扭曲術(shù)語(yǔ),它定義了要使用的TLS/SSL協(xié)議版本,無(wú)論是進(jìn)行證書(shū)驗(yàn)證,還是甚至啟用客戶端身份驗(yàn)證(以及其他各種事情)。
注解
剪貼默認(rèn)上下文工廠 不執(zhí)行遠(yuǎn)程服務(wù)器證書(shū)驗(yàn)證 . 這通常對(duì)爬取Web很好。
如果您確實(shí)需要啟用遠(yuǎn)程服務(wù)器證書(shū)驗(yàn)證,scrapy還可以設(shè)置另一個(gè)上下文工廠類, ?'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'
? ,它使用平臺(tái)的證書(shū)來(lái)驗(yàn)證遠(yuǎn)程端點(diǎn)。
如果確實(shí)使用自定義ContextFactory,請(qǐng)確保 ?__init__
? 方法接受 ?method
? 參數(shù)(這是 ?OpenSSL.SSL
? 方法映射 ?DOWNLOADER_CLIENT_TLS_METHOD
? a) ?tls_verbose_logging
? 參數(shù) (?bool
? 和A ?tls_ciphers
? 參數(shù)(見(jiàn)) ?DOWNLOADER_CLIENT_TLS_CIPHERS
? )
違約: ?'DEFAULT'
?
使用此設(shè)置可自定義默認(rèn)HTTP/1.1下載器使用的TLS/SSL密碼。
該設(shè)置應(yīng)包含 OpenSSL cipher list format ,這些密碼將用作客戶端密碼。更改此設(shè)置可能是訪問(wèn)某些HTTPS網(wǎng)站所必需的:例如,您可能需要使用 ?'DEFAULT:!DH'
? 對(duì)于DH參數(shù)較弱的網(wǎng)站,或啟用未包含在中的特定密碼 ?DEFAULT
? 如果網(wǎng)站需要的話。
違約: ?'TLS'
?
使用此設(shè)置自定義默認(rèn)HTTP/1.1下載程序使用的TLS/SSL方法。
此設(shè)置必須是以下字符串值之一:
'TLS'
? :映射到OpenSSL ?TLS_method()
? (A.K.A) ?SSLv23_method()
? ,允許協(xié)議協(xié)商,從平臺(tái)支持的最高點(diǎn)開(kāi)始; 默認(rèn),推薦'TLSv1.0'
? :此值強(qiáng)制HTTPS連接使用TLS版本1.0;如果希望scrapy的行為小于1.1,請(qǐng)?jiān)O(shè)置此值。'TLSv1.1'
? :強(qiáng)制TLS版本1.1'TLSv1.2'
? :強(qiáng)制TLS版本1.2'SSLv3'
? :強(qiáng)制SSL版本3( 未推薦的 )違約: ?False
?
設(shè)置為 ?True
? 將在建立HTTPS連接后啟用有關(guān)TLS連接參數(shù)的調(diào)試級(jí)別消息。記錄的信息類型取決于openssl和pyopenssl的版本。
此設(shè)置僅用于默認(rèn) ?DOWNLOADER_CLIENTCONTEXTFACTORY
? .
違約:: ?{{}}
?
包含項(xiàng)目中啟用的下載器中間軟件及其訂單的dict。有關(guān)詳細(xì)信息,請(qǐng)參閱 激活下載器中間件 .
違約:
{
'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,
}
包含默認(rèn)在scrappy中啟用的下載器中間軟件的dict。低階更接近引擎,高階更接近下載器。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,請(qǐng)修改 ?DOWNLOADER_MIDDLEWARES
? 相反。有關(guān)詳細(xì)信息,請(qǐng)參閱 激活下載器中間件 .
違約: ?True
?
是否啟用下載器統(tǒng)計(jì)信息收集。
違約: ?0
?
下載者從同一網(wǎng)站下載連續(xù)頁(yè)面之前應(yīng)等待的時(shí)間(以秒計(jì))。這可以用來(lái)限制爬行速度,以避免對(duì)服務(wù)器造成太大的沖擊。支持十進(jìn)制數(shù)。例子::
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
此設(shè)置也受 ?RANDOMIZE_DOWNLOAD_DELAY
? 設(shè)置(默認(rèn)啟用)。默認(rèn)情況下,scrappy不會(huì)在請(qǐng)求之間等待固定的時(shí)間,而是使用0.5之間的隨機(jī)間隔 * DOWNLOAD_DELAY and 1.5 * ?DOWNLOAD_DELAY
? .
什么時(shí)候? ?CONCURRENT_REQUESTS_PER_IP
? 為非零,每個(gè)IP地址而不是每個(gè)域強(qiáng)制延遲。
您還可以通過(guò)設(shè)置每個(gè)蜘蛛更改此設(shè)置 ?download_delay
? 蜘蛛屬性。
違約: ?{{}}
?
包含項(xiàng)目中啟用的請(qǐng)求下載器處理程序的dict。見(jiàn) ?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',
}
包含在scrappy中默認(rèn)啟用的請(qǐng)求下載處理程序的dict。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,請(qǐng)修改 ?DOWNLOAD_HANDLERS
? 相反。
您可以通過(guò)分配 ?None
? 到他們的URI方案 ?DOWNLOAD_HANDLERS
? . 例如,要禁用內(nèi)置的ftp處理程序(不替換),請(qǐng)將其放入 ?settings.py
? :
DOWNLOAD_HANDLERS = {
'ftp': None,
}
違約: ?180
?
下載程序在超時(shí)前等待的時(shí)間(以秒計(jì))。
注解
可以使用以下方法設(shè)置每個(gè)蜘蛛的超時(shí) ?download_timeout
? 蜘蛛屬性和每個(gè)請(qǐng)求使用 ?download_timeout
? request.meta鍵。
違約: ?1073741824
? (1024MB)
下載程序?qū)⑾螺d的最大響應(yīng)大?。ㄗ止?jié))。
如果要禁用它,請(qǐng)將其設(shè)置為0。
注解
此尺寸可通過(guò)使用 ?download_maxsize
? 蜘蛛屬性和每個(gè)請(qǐng)求使用 ?download_maxsize
? request.meta鍵。
違約: ?33554432
? (32 MB)
下載程序?qū)㈤_(kāi)始警告的響應(yīng)大?。ㄗ止?jié))。
如果要禁用它,請(qǐng)將其設(shè)置為0。
注解
此尺寸可通過(guò)使用 ?download_warnsize
? 蜘蛛屬性和每個(gè)請(qǐng)求使用 ?download_warnsize
? request.meta鍵。
違約: ?True
?
是否在錯(cuò)誤的響應(yīng)上失敗,也就是說(shuō),聲明 ?Content-Length
? 與服務(wù)器發(fā)送的內(nèi)容不匹配,或者分塊響應(yīng)未正確完成。如果 ?True
? ,這些反應(yīng)引發(fā)了 ResponseFailed([_DataLoss]) 錯(cuò)誤。如果 False ,這些響應(yīng)將傳遞給 dataloss 添加到響應(yīng)中,即: 'dataloss' in response.flags 是 True .
或者,可以通過(guò)使用 ?download_fail_on_dataloss
? 請(qǐng)求.meta鍵 False .
注解
從服務(wù)器配置錯(cuò)誤到網(wǎng)絡(luò)錯(cuò)誤,再到數(shù)據(jù)損壞,在多種情況下可能會(huì)發(fā)生中斷響應(yīng)或數(shù)據(jù)丟失錯(cuò)誤。由用戶決定處理中斷的響應(yīng)是否有意義,因?yàn)樗鼈兛赡馨糠只虿煌暾膬?nèi)容。如果 RETRY_ENABLED 是 True 此設(shè)置設(shè)置為 True , the ResponseFailed([_DataLoss]) 失敗將像往常一樣重試。
違約: ?'scrapy.dupefilters.RFPDupeFilter'
?
用于檢測(cè)和篩選重復(fù)請(qǐng)求的類。
默認(rèn)值 (?RFPDupeFilter
? )根據(jù)請(qǐng)求指紋使用 ?scrapy.utils.request.request_fingerprint
? 功能。為了更改檢查重復(fù)項(xiàng)的方式,可以將 ?RFPDupeFilter
? 并覆蓋其 ?request_fingerprint
? 方法。這個(gè)方法應(yīng)該接受slapy Request 對(duì)象并返回其指紋(字符串)。
您可以通過(guò)設(shè)置禁用重復(fù)請(qǐng)求的篩選 ?DUPEFILTER_CLASS
? 到 ?'scrapy.dupefilters.BaseDupeFilter'
? . 但是要非常小心,因?yàn)槟梢赃M(jìn)入爬行循環(huán)。通常設(shè)置 ?dont_filter
? 參數(shù)到 ?True
? 論具體 ?Request
? 這不應(yīng)該被過(guò)濾。
違約: ?False
?
默認(rèn)情況下, ?RFPDupeFilter
? 只記錄第一個(gè)重復(fù)請(qǐng)求。設(shè)置 ?DUPEFILTER_DEBUG
? 到 ?True
? 將使其記錄所有重復(fù)的請(qǐng)求。
違約: ?vi
? (在UNIX系統(tǒng)上)或空閑編輯器(在Windows上)
用于編輯蜘蛛的編輯器 ?edit
? 命令。此外,如果 ?EDITOR
? 設(shè)置了環(huán)境變量, ?edit
? 命令將優(yōu)先于默認(rèn)設(shè)置。
違約:: ?{{}}
?
包含項(xiàng)目中啟用的擴(kuò)展及其順序的dict。
違約:
{
'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,
}
包含默認(rèn)情況下在scrappy中可用的擴(kuò)展名及其順序的dict。此設(shè)置包含所有穩(wěn)定的內(nèi)置擴(kuò)展。請(qǐng)記住,其中一些需要通過(guò)設(shè)置啟用。
有關(guān)更多信息,請(qǐng)參閱 extensions user guide 以及 list of available extensions .
feed temp目錄允許您設(shè)置自定義文件夾,以便在上載之前保存crawler臨時(shí)文件 FTP feed storage 和 Amazon S3 .
將項(xiàng)存儲(chǔ)到中時(shí)使用的訪問(wèn)控制列表(ACL) Google Cloud Storage . 有關(guān)如何設(shè)置此值的詳細(xì)信息,請(qǐng)參閱列 JSON API 在里面 Google Cloud documentation .
違約: ?True
?
啟動(dòng)FTP傳輸時(shí)是否使用被動(dòng)模式。
違約: ?"guest"
?
當(dāng)沒(méi)有ftp連接時(shí)用于ftp連接的密碼 ?"ftp_password"
? 在里面 ?Request
? 元。
注解
釋義 RFC 1635 盡管匿名ftp通常使用密碼“guest”或電子郵件地址,但有些ftp服務(wù)器明確要求用戶的電子郵件地址,不允許使用“guest”密碼登錄。
違約: ?"anonymous"
?
當(dāng)沒(méi)有ftp連接時(shí)用于ftp連接的用戶名 ?"ftp_user"
? 在里面 Request 元。
違約: ?None
?
在上存儲(chǔ)數(shù)據(jù)時(shí)將使用的項(xiàng)目ID Google Cloud Storage .
違約: ?{{}}
?
包含要使用的項(xiàng)目管道及其訂單的dict。順序值是任意的,但通常在0-1000范圍內(nèi)定義它們。低訂單處理優(yōu)先于高訂單。
例子::
ITEM_PIPELINES = {
'mybot.pipelines.validate.ValidateMyItem': 300,
'mybot.pipelines.validate.StoreMyItem': 800,
}
違約: ?{{}}
?
包含默認(rèn)情況下在Scrapy中啟用的管道的dict。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,請(qǐng)修改 ?ITEM_PIPELINES
? 相反。
違約: ?True
?
是否啟用日志記錄。
違約: ?'utf-8'
?
用于日志記錄的編碼。
違約: ?None
?
用于日志記錄輸出的文件名。如果 ?None
? ,將使用標(biāo)準(zhǔn)錯(cuò)誤。
違約: ?'%(asctime)s [%(name)s] %(levelname)s: %(message)s'
?
用于格式化日志消息的字符串。請(qǐng)參閱 Python logging documentation 所有可用占位符列表。
違約: ?'%Y-%m-%d %H:%M:%S'
?
用于格式化日期/時(shí)間的字符串,擴(kuò)展 ?%(asctime)s
? 占位符 ?LOG_FORMAT
? . 參考 Python datetime documentation 對(duì)于可用指令的整個(gè)列表。
違約: ?scrapy.logformatter.LogFormatter
?
用于的類 formatting log messages 對(duì)于不同的行動(dòng)。
違約: ?'DEBUG'
?
要記錄的最低級(jí)別??捎眉?jí)別包括:嚴(yán)重、錯(cuò)誤、警告、信息、調(diào)試。有關(guān)詳細(xì)信息,請(qǐng)參閱 登錄 .
違約: ?False
?
如果 ?True
? ,進(jìn)程的所有標(biāo)準(zhǔn)輸出(和錯(cuò)誤)都將重定向到日志。例如,如果你 ?print('hello')
? 它會(huì)出現(xiàn)在殘缺的木頭上。
違約: ?False
?
如果 ?True
? 日志只包含根路徑。如果設(shè)置為 ?False
? 然后顯示負(fù)責(zé)日志輸出的組件
違約: ?60.0
?
統(tǒng)計(jì)信息的每個(gè)日志打印輸出之間的間隔(秒) ?LogStats
? .
違約: ?False
?
是否啟用內(nèi)存調(diào)試。
違約: ?[]
?
當(dāng)啟用內(nèi)存調(diào)試時(shí),如果此設(shè)置不為空,則會(huì)將內(nèi)存報(bào)告發(fā)送到指定的地址,否則報(bào)告將寫(xiě)入日志。
例子::
MEMDEBUG_NOTIFY = ['user@example.com']
違約: ?True
?
經(jīng)營(yíng)范圍: ?scrapy.extensions.memusage
?
是否啟用內(nèi)存使用擴(kuò)展。此擴(kuò)展跟蹤進(jìn)程使用的峰值內(nèi)存(它將其寫(xiě)入統(tǒng)計(jì)信息)。它還可以選擇在超過(guò)內(nèi)存限制時(shí)關(guān)閉 Scrapy 進(jìn)程(請(qǐng)參見(jiàn) ?MEMUSAGE_LIMIT_MB
? ,并在發(fā)生這種情況時(shí)通過(guò)電子郵件通知(請(qǐng)參見(jiàn) ?MEMUSAGE_NOTIFY_MAIL
? )
見(jiàn) 內(nèi)存使用擴(kuò)展 .
違約: ?0
?
經(jīng)營(yíng)范圍: ?scrapy.extensions.memusage
?
關(guān)閉scrappy前允許的最大內(nèi)存量(以兆字節(jié)為單位)(如果memusage_enabled為true)。如果為零,則不執(zhí)行任何檢查。
見(jiàn) 內(nèi)存使用擴(kuò)展 .
違約: ?60.0
?
經(jīng)營(yíng)范圍: ?scrapy.extensions.memusage
?
這個(gè) Memory usage extension 檢查當(dāng)前內(nèi)存使用情況,與 ?MEMUSAGE_LIMIT_MB
? 和 ?MEMUSAGE_WARNING_MB
? ,以固定的時(shí)間間隔。
這將以秒為單位設(shè)置這些間隔的長(zhǎng)度。
見(jiàn) 內(nèi)存使用擴(kuò)展 .
違約: ?False
?
經(jīng)營(yíng)范圍: ?scrapy.extensions.memusage
?
通知是否達(dá)到內(nèi)存限制的電子郵件列表。
例子::
MEMUSAGE_NOTIFY_MAIL = ['user@example.com']
見(jiàn) 內(nèi)存使用擴(kuò)展 .
違約: ?0
?
經(jīng)營(yíng)范圍: ?scrapy.extensions.memusage
?
發(fā)送警告電子郵件通知前允許的最大內(nèi)存量(以兆字節(jié)為單位)。如果為零,則不會(huì)產(chǎn)生警告。
違約: ?''
?
模塊在何處使用 ?genspider
? 命令。
例子:
NEWSPIDER_MODULE = 'mybot.spiders_dev'
違約: ?True
?
如果啟用,Scrapy將隨機(jī)等待一段時(shí)間(0.5之間 * ?DOWNLOAD_DELAY
? and 1.5 * ?DOWNLOAD_DELAY
? )同時(shí)從同一網(wǎng)站獲取請(qǐng)求。
這種隨機(jī)化減少了爬蟲(chóng)被站點(diǎn)檢測(cè)(并隨后被阻止)的機(jī)會(huì),這些站點(diǎn)分析請(qǐng)求,尋找它們請(qǐng)求之間的時(shí)間有統(tǒng)計(jì)學(xué)意義的相似性。
隨機(jī)化策略與 wget ?--random-wait
? 選擇權(quán)。
如果 ?DOWNLOAD_DELAY
? 為零(默認(rèn)值)此選項(xiàng)無(wú)效。
違約: ?10
?
扭曲反應(yīng)器線程池大小的最大限制。這是各種 Scrapy 組件使用的通用多用途線程池。線程DNS解析器,blockingfeedstorage,s3filestore等等。如果遇到阻塞IO不足的問(wèn)題,請(qǐng)?jiān)黾哟酥怠?/p>
違約: ?+2
?
經(jīng)營(yíng)范圍: ?scrapy.downloadermiddlewares.redirect.RedirectMiddleware
?
相對(duì)于原始請(qǐng)求調(diào)整重定向請(qǐng)求優(yōu)先級(jí):
違約: ?-1
?
經(jīng)營(yíng)范圍: ?scrapy.downloadermiddlewares.retry.RetryMiddleware
?
相對(duì)于原始請(qǐng)求調(diào)整重試請(qǐng)求優(yōu)先級(jí):
違約: ?False
?
經(jīng)營(yíng)范圍: ?scrapy.downloadermiddlewares.robotstxt
?
如果啟用,scrapy將遵守robots.txt策略。有關(guān)詳細(xì)信息,請(qǐng)參閱 RobotsTxtMiddleware .
注解
當(dāng)默認(rèn)值為 ?False
? 出于歷史原因,默認(rèn)情況下,此選項(xiàng)在由生成的settings.py文件中啟用。 ?scrapy startproject
? 命令。
違約: ?'scrapy.robotstxt.ProtegoRobotParser'
?
用于分析的分析器后端 ?robots.txt
? 文件夾。有關(guān)詳細(xì)信息,請(qǐng)參閱 RobotsTxtMiddleware .
違約: ?None
?
中用于匹配的用戶代理字符串機(jī)器人.txt文件。如果 None ,隨請(qǐng)求或 ?USER_AGENT
? 設(shè)置(按該順序)將用于確定要在中使用的用戶代理機(jī)器人.txt文件。
違約: ?'scrapy.core.scheduler.Scheduler'
?
用于爬網(wǎng)的計(jì)劃程序。
違約: ?False
?
設(shè)置為 ?True
? 將記錄有關(guān)請(qǐng)求計(jì)劃程序的調(diào)試信息。如果無(wú)法將請(qǐng)求序列化到磁盤(pán),則當(dāng)前只記錄一次。統(tǒng)計(jì)計(jì)數(shù)器 (?scheduler/unserializable
? )跟蹤發(fā)生這種情況的次數(shù)。
日志中的示例條目:
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)
違約: ?'scrapy.squeues.PickleLifoDiskQueue'
?
計(jì)劃程序?qū)⑹褂玫拇疟P(pán)隊(duì)列類型。其他可用類型包括 ?scrapy.squeues.PickleFifoDiskQueue
? , ?scrapy.squeues.MarshalFifoDiskQueue
? , ?scrapy.squeues.MarshalLifoDiskQueue
? .
違約: ?'scrapy.squeues.LifoMemoryQueue'
?
調(diào)度程序使用的內(nèi)存中隊(duì)列的類型。其他可用類型為: ?scrapy.squeues.FifoMemoryQueue
? .
違約: ?'scrapy.pqueues.ScrapyPriorityQueue'
?
調(diào)度程序使用的優(yōu)先級(jí)隊(duì)列的類型。另一種可用類型是 ?scrapy.pqueues.DownloaderAwarePriorityQueue
? . ?scrapy.pqueues.DownloaderAwarePriorityQueue
? 比 ?scrapy.pqueues.ScrapyPriorityQueue
? 當(dāng)您并行地對(duì)許多不同的域進(jìn)行爬網(wǎng)時(shí)。但目前 ?scrapy.pqueues.DownloaderAwarePriorityQueue
? 不與一起工作 CONCURRENT_REQUESTS_PER_IP .
2.0 新版功能.
違約: ?5_000_000
?
正在處理的響應(yīng)數(shù)據(jù)的軟限制(字節(jié))。
當(dāng)正在處理的所有響應(yīng)的大小之和大于此值時(shí),Scrapy不處理新請(qǐng)求。
違約: ?{{}}
?
包含項(xiàng)目中啟用的蜘蛛合約的dict,用于測(cè)試蜘蛛。有關(guān)詳細(xì)信息,請(qǐng)參閱 蜘蛛合約 .
違約:
{
'scrapy.contracts.default.UrlContract' : 1,
'scrapy.contracts.default.ReturnsContract': 2,
'scrapy.contracts.default.ScrapesContract': 3,
}
包含Scrapy中默認(rèn)啟用的Scrapy契約的dict。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,修改 ?SPIDER_CONTRACTS
? 相反。有關(guān)詳細(xì)信息,請(qǐng)參閱 蜘蛛合約 .
您可以通過(guò)分配 ?None
? 去他們的班級(jí) ?SPIDER_CONTRACTS
? . 例如,禁用內(nèi)置 ?ScrapesContract
? 把這個(gè)放在你的 ?settings.py
? ::
SPIDER_CONTRACTS = {
'scrapy.contracts.default.ScrapesContract': None,
}
違約: ?'scrapy.spiderloader.SpiderLoader'
?
將用于加載spider的類,該類必須實(shí)現(xiàn) SpiderLoader API .
違約: ?False
?
默認(rèn)情況下,當(dāng)Scrapy試圖從 ?SPIDER_MODULES
? 如果有的話,它會(huì)很響地失效。 ?ImportError
? 例外。但是您可以選擇沉默這個(gè)異常,并通過(guò)設(shè)置將它變成一個(gè)簡(jiǎn)單的警告 ?SPIDER_LOADER_WARN_ONLY = True
? .
注解
一些 scrapy commands 使用此設(shè)置運(yùn)行到 ?True
? 已經(jīng)(即,它們只會(huì)發(fā)出警告,不會(huì)失?。?,因?yàn)樗鼈儗?shí)際上不需要加載蜘蛛類來(lái)工作: ?scrapy runspider
? , ?scrapy settings
? , ?scrapy startproject
? , scrapy version .
違約:: ?{{}}
?
包含項(xiàng)目中啟用的蜘蛛中間件及其訂單的dict。有關(guān)詳細(xì)信息,請(qǐng)參閱 激活蜘蛛中間件 .
違約:
{
'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,
}
包含spider中間件的dict,默認(rèn)情況下在scrappy中啟用,以及它們的順序。低階更接近發(fā)動(dòng)機(jī),高階更接近蜘蛛。有關(guān)詳細(xì)信息,請(qǐng)參閱 激活蜘蛛中間件 .
違約: ?[]
?
Scrapy將在其中查找蜘蛛的模塊列表。
例子::
SPIDER_MODULES = ['mybot.spiders_prod', 'mybot.spiders_dev']
違約: ?'scrapy.statscollectors.MemoryStatsCollector'
?
用于收集統(tǒng)計(jì)信息的類,必須實(shí)現(xiàn) 統(tǒng)計(jì)收集器API .
違約: ?True
?
轉(zhuǎn)儲(chǔ) Scrapy stats (對(duì)著殘破的木頭)一旦蜘蛛完成。
有關(guān)詳細(xì)信息,請(qǐng)參閱: 統(tǒng)計(jì)數(shù)據(jù)集合 .
違約: ?[]
? (空表)
蜘蛛完成爬取后發(fā)送殘缺數(shù)據(jù)。見(jiàn) ?StatsMailer
? 更多信息。
違約: ?True
?
一個(gè)布爾值,指定 telnet console 將被啟用(前提是它的擴(kuò)展也被啟用)。
違約: templates Scrapy 模塊內(nèi)部目錄
創(chuàng)建新項(xiàng)目時(shí)要在其中查找模板的目錄 ?startproject
? 命令和新蜘蛛 ?genspider
? 命令。
項(xiàng)目名稱不得與中自定義文件或目錄的名稱沖突。 ?project
? 子目錄。
2.0 新版功能.
違約: ?None
?
給定的導(dǎo)入路徑 ?reactor
? .
如果還沒(méi)有安裝其他反應(yīng)器,比如當(dāng) ?scrapy
? 調(diào)用CLI程序或在使用 ?CrawlerProcess
? 班級(jí)。
如果您正在使用 ?CrawlerRunner
? 類,還需要手動(dòng)安裝正確的reactor。你可以用 ?install_reactor()
? :
scrapy.utils.reactor.
install_reactor
(reactor_path, event_loop_path=None)安裝 ?reactor
? 具有指定的導(dǎo)入路徑。如果啟用了asyncio reactor,還將使用指定的導(dǎo)入路徑安裝asyncio事件循環(huán)
如果已經(jīng)安裝了反應(yīng)堆, ?install_reactor()
? 沒(méi)有效果。
?CrawlerRunner.__init__
? 加薪 ?Exception
? 如果安裝的反應(yīng)堆與 ?TWISTED_REACTOR
? 設(shè)置;因此,具有頂層 ?reactor
? 項(xiàng)目文件中的導(dǎo)入和導(dǎo)入的第三方庫(kù)將導(dǎo)致垃圾的增加 ?Exception
? 當(dāng)它檢查安裝了哪個(gè)反應(yīng)堆。
為了使用Scrapy安裝的反應(yīng)器:
import scrapy
from twisted.internet import reactor
class QuotesSpider(scrapy.Spider):
name = 'quotes'
def __init__(self, *args, **kwargs):
self.timeout = int(kwargs.pop('timeout', '60'))
super(QuotesSpider, self).__init__(*args, **kwargs)
def start_requests(self):
reactor.callLater(self.timeout, self.stop)
urls = ['http://quotes.toscrape.com/page/1']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
for quote in response.css('div.quote'):
yield {'text': quote.css('span.text text').get()}
def stop(self):
self.crawler.engine.close_spider(self, 'timeout')
使 ?Exception
? ,變成:
import scrapy
class QuotesSpider(scrapy.Spider):
name = 'quotes'
def __init__(self, *args, **kwargs):
self.timeout = int(kwargs.pop('timeout', '60'))
super(QuotesSpider, self).__init__(*args, **kwargs)
def start_requests(self):
from twisted.internet import reactor
reactor.callLater(self.timeout, self.stop)
urls = ['http://quotes.toscrape.com/page/1']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
for quote in response.css('div.quote'):
yield {'text': quote.css('span.text::text').get()}
def stop(self):
self.crawler.engine.close_spider(self, 'timeout')
的默認(rèn)值 ?TWISTED_REACTOR
? 設(shè)置是 ?None
? ,這意味著Scrapy不會(huì)嘗試安裝任何特定的reactor,并且將使用Twisted為當(dāng)前平臺(tái)定義的默認(rèn)reactor。這是為了保持向后兼容性,并避免使用非默認(rèn)反應(yīng)器可能導(dǎo)致的問(wèn)題。
有關(guān)其他信息,請(qǐng)參閱 Choosing a Reactor and GUI Toolkit Integration .
違約: ?2083
?
經(jīng)營(yíng)范圍: ?spidermiddlewares.urllength
?
允許已爬網(wǎng)URL的最大URL長(zhǎng)度。有關(guān)此設(shè)置的默認(rèn)值的詳細(xì)信息,請(qǐng)參閱:https://boutell.com/newfaq/misc/urllength.html
違約: ?"Scrapy/VERSION (+https://scrapy.org)"
?
爬網(wǎng)時(shí)要使用的默認(rèn)用戶代理,除非被重寫(xiě)。此用戶代理還由 ?RobotsTxtMiddleware
? 如果 ?ROBOTSTXT_USER_AGENT
? 設(shè)置是 ?None
? 并且沒(méi)有為請(qǐng)求指定重寫(xiě)用戶代理頭。
更多建議: