国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

scrapy 2.3 AutoThrottle擴展

2021-06-17 16:13 更新

這是一個擴展,基于Scrapy服務器和您正在爬行的網(wǎng)站的負載,自動限制爬行速度。

設計目標

  1. 對站點更好,而不是使用默認的下載延遲為零
  2. 自動調(diào)整Scrapy到最佳的爬行速度,因此用戶不必調(diào)整下載延遲來找到最佳的。用戶只需要指定它允許的最大并發(fā)請求,其余的由擴展來完成。

它是如何工作的

AutoThrottle 擴展動態(tài)調(diào)整下載延遲,使蜘蛛發(fā)送 ?AUTOTHROTTLE_TARGET_CONCURRENCY? 平均每個遠程網(wǎng)站的并發(fā)請求。

它使用下載延遲來計算延遲。主要思想如下:如果服務器需要 ?latency? 響應時間為秒,客戶端應每秒鐘發(fā)送一個請求 ?latency/N? 秒有 ?N? 并行處理的請求。

不需要調(diào)整延遲,只需設置一個小的固定下載延遲,并對使用 ?CONCURRENT_REQUESTS_PER_DOMAIN? 或 ?CONCURRENT_REQUESTS_PER_IP? 選項。它會產(chǎn)生類似的效果,但有一些重要的區(qū)別:

  • 因為下載延遲很小,偶爾會有突發(fā)的請求;
  • 通常,非200(錯誤)響應的返回速度比常規(guī)響應快,因此,只要有一個較小的下載延遲和硬并發(fā)限制,當服務器開始返回錯誤時,爬蟲程序?qū)⒏斓叵蚍掌靼l(fā)送請求。但這與爬蟲應該做的相反——如果出現(xiàn)錯誤,放慢速度更有意義:這些錯誤可能是由高請求率引起的。

AutoThrottle 沒有這些問題。

節(jié)流算法

AutoThrottle 算法根據(jù)以下規(guī)則調(diào)整下載延遲:

  1. 蜘蛛總是以下載延遲開始 ?AUTOTHROTTLE_START_DELAY? ;
  2. 當收到響應時,目標下載延遲計算為 ?latency / N? 在哪里? ?latency? 是響應的延遲,并且 ?N? 是 ?AUTOTHROTTLE_TARGET_CONCURRENCY? .
  3. 下一個請求的下載延遲設置為上一個下載延遲和目標下載延遲的平均值;
  4. 不允許非200響應的延遲減少延遲;
  5. 下載延遲不能小于 ?DOWNLOAD_DELAY? 或大于 ?AUTOTHROTTLE_MAX_DELAY?

注解

autothrottle擴展支持并發(fā)和延遲的標準 Scrapy 設置。這意味著它將尊重 ?CONCURRENT_REQUESTS_PER_DOMAIN? 和 ?CONCURRENT_REQUESTS_PER_IP? 選項,并且從不將下載延遲設置為低于  ?DOWNLOAD_DELAY? .

在scrappy中,下載延遲是以建立TCP連接和接收HTTP頭之間所經(jīng)過的時間來度量的。

注意,在一個合作的多任務環(huán)境中,這些延遲很難精確測量,因為scrapy可能正忙于處理spider回調(diào),例如,無法參加下載。然而,這些延遲仍然應該對Scrapy(最終是服務器)有多忙給出一個合理的估計,并且這個擴展是在這個前提下構建的。

設置

用于控制 AutoThrottle 擴展的設置為:

  • ?AUTOTHROTTLE_ENABLED?
  • ?AUTOTHROTTLE_START_DELAY?
  • ?AUTOTHROTTLE_MAX_DELAY?
  • ?AUTOTHROTTLE_TARGET_CONCURRENCY?
  • ?AUTOTHROTTLE_DEBUG?
  • ?CONCURRENT_REQUESTS_PER_DOMAIN?
  • ?CONCURRENT_REQUESTS_PER_IP?
  • ?DOWNLOAD_DELAY?

有關詳細信息,請參閱 它是如何工作的 .

AUTOTHROTTLE_ENABLED

違約: ?False?

啟用AutoThrottle 擴展。

AUTOTHROTTLE_START_DELAY

違約: ?5.0?

初始下載延遲(秒)。

AUTOTHROTTLE_MAX_DELAY

違約: ?60.0?

在高延遲情況下設置的最大下載延遲(秒)。

AUTOTHROTTLE_TARGET_CONCURRENCY

違約: ?1.0?

Scrapy的平均請求數(shù)應與遠程網(wǎng)站并行發(fā)送。

默認情況下,autothrottle會調(diào)整延遲以向每個遠程網(wǎng)站發(fā)送單個并發(fā)請求。將此選項設置為更高的值(例如 ?2.0? )以增加遠程服務器的吞吐量和負載。下層 ?AUTOTHROTTLE_TARGET_CONCURRENCY? 價值(例如) ?0.5? )讓爬蟲人更加保守和禮貌。

注意 ?CONCURRENT_REQUESTS_PER_DOMAIN? 和 ?CONCURRENT_REQUESTS_PER_IP? 啟用 AutoThrottle 擴展功能時,仍會遵循選項。這意味著如果 ?AUTOTHROTTLE_TARGET_CONCURRENCY? 設置為大于的值 ?CONCURRENT_REQUESTS_PER_DOMAIN? 或 ?CONCURRENT_REQUESTS_PER_IP? ,爬蟲程序?qū)o法達到此數(shù)量的并發(fā)請求。

在每個給定的時間點上,scrapy可以發(fā)送的并發(fā)請求多于或少于 ?AUTOTHROTTLE_TARGET_CONCURRENCY? ;這是爬蟲嘗試接近的建議值,而不是硬限制。

AUTOTHROTTLE_DEBUG

違約: ?False?

啟用 AutoThrottle 調(diào)試模式,該模式將顯示收到的每個響應的統(tǒng)計信息,以便您可以看到如何實時調(diào)整節(jié)流參數(shù)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號