W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
這是一個擴展,基于Scrapy服務(wù)器和您正在爬行的網(wǎng)站的負載,自動限制爬行速度。
AutoThrottle 擴展動態(tài)調(diào)整下載延遲,使蜘蛛發(fā)送 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? 平均每個遠程網(wǎng)站的并發(fā)請求。
它使用下載延遲來計算延遲。主要思想如下:如果服務(wù)器需要 ?latency
? 響應(yīng)時間為秒,客戶端應(yīng)每秒鐘發(fā)送一個請求 ?latency/N
? 秒有 ?N
? 并行處理的請求。
不需要調(diào)整延遲,只需設(shè)置一個小的固定下載延遲,并對使用 ?CONCURRENT_REQUESTS_PER_DOMAIN
? 或 ?CONCURRENT_REQUESTS_PER_IP
? 選項。它會產(chǎn)生類似的效果,但有一些重要的區(qū)別:
AutoThrottle 沒有這些問題。
AutoThrottle 算法根據(jù)以下規(guī)則調(diào)整下載延遲:
AUTOTHROTTLE_START_DELAY
? ;latency / N
? 在哪里? ?latency
? 是響應(yīng)的延遲,并且 ?N
? 是 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? .DOWNLOAD_DELAY
? 或大于 ?AUTOTHROTTLE_MAX_DELAY
?
注解
autothrottle擴展支持并發(fā)和延遲的標準 Scrapy 設(shè)置。這意味著它將尊重 ?CONCURRENT_REQUESTS_PER_DOMAIN
? 和 ?CONCURRENT_REQUESTS_PER_IP
? 選項,并且從不將下載延遲設(shè)置為低于
?DOWNLOAD_DELAY
? .
在scrappy中,下載延遲是以建立TCP連接和接收HTTP頭之間所經(jīng)過的時間來度量的。
注意,在一個合作的多任務(wù)環(huán)境中,這些延遲很難精確測量,因為scrapy可能正忙于處理spider回調(diào),例如,無法參加下載。然而,這些延遲仍然應(yīng)該對Scrapy(最終是服務(wù)器)有多忙給出一個合理的估計,并且這個擴展是在這個前提下構(gòu)建的。
用于控制 AutoThrottle 擴展的設(shè)置為:
AUTOTHROTTLE_ENABLED
?
AUTOTHROTTLE_START_DELAY
?
AUTOTHROTTLE_MAX_DELAY
?
AUTOTHROTTLE_TARGET_CONCURRENCY
?
AUTOTHROTTLE_DEBUG
?
CONCURRENT_REQUESTS_PER_DOMAIN
?
CONCURRENT_REQUESTS_PER_IP
?
DOWNLOAD_DELAY
?
有關(guān)詳細信息,請參閱 它是如何工作的 .
違約: ?False
?
啟用AutoThrottle 擴展。
違約: ?5.0
?
初始下載延遲(秒)。
違約: ?60.0
?
在高延遲情況下設(shè)置的最大下載延遲(秒)。
違約: ?1.0
?
Scrapy的平均請求數(shù)應(yīng)與遠程網(wǎng)站并行發(fā)送。
默認情況下,autothrottle會調(diào)整延遲以向每個遠程網(wǎng)站發(fā)送單個并發(fā)請求。將此選項設(shè)置為更高的值(例如 ?2.0
? )以增加遠程服務(wù)器的吞吐量和負載。下層 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? 價值(例如) ?0.5
? )讓爬蟲人更加保守和禮貌。
注意 ?CONCURRENT_REQUESTS_PER_DOMAIN
? 和 ?CONCURRENT_REQUESTS_PER_IP
? 啟用
AutoThrottle 擴展功能時,仍會遵循選項。這意味著如果 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? 設(shè)置為大于的值 ?CONCURRENT_REQUESTS_PER_DOMAIN
? 或 ?CONCURRENT_REQUESTS_PER_IP
? ,爬蟲程序?qū)o法達到此數(shù)量的并發(fā)請求。
在每個給定的時間點上,scrapy可以發(fā)送的并發(fā)請求多于或少于 ?AUTOTHROTTLE_TARGET_CONCURRENCY
? ;這是爬蟲嘗試接近的建議值,而不是硬限制。
違約: ?False
?
啟用 AutoThrottle 調(diào)試模式,該模式將顯示收到的每個響應(yīng)的統(tǒng)計信息,以便您可以看到如何實時調(diào)整節(jié)流參數(shù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: