在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 自動限速(AutoThrottle)擴(kuò)展
Benchmarking
命令行工具(Command line tools)
下載器中間件(Downloader Middleware)
信號(Signals)
Telnet 終端(Telnet Console)
初窺 Scrapy
數(shù)據(jù)收集(Stats Collection)
Scrapyd
通用爬蟲(Broad Crawls)
Item Loaders
試驗(yàn)階段特性
Scrapy 入門教程
自動限速(AutoThrottle)擴(kuò)展
Settings
Scrapy 終端(Scrapy shell)
下載項(xiàng)目圖片
DjangoItem
調(diào)試(Debugging)Spiders
選擇器(Selectors)
Feed exports
Spiders Contracts
借助 Firefox 來爬取
Logging
Spiders
Ubuntu 軟件包
實(shí)踐經(jīng)驗(yàn)(Common Practices)
安裝指南
Item Exporters
擴(kuò)展(Extensions)
Items
Spider 中間件(Middleware)
異常(Exceptions)
例子
發(fā)送 email
架構(gòu)概覽
常見問題(FAQ)
Jobs:暫停,恢復(fù)爬蟲
核心 API
使用 Firebug 進(jìn)行爬取
Item Pipeline
Link Extractors
Web Service
調(diào)試內(nèi)存溢出

自動限速(AutoThrottle)擴(kuò)展

該擴(kuò)展能根據(jù) Scrapy 服務(wù)器及您爬取的網(wǎng)站的負(fù)載自動限制爬取速度。

設(shè)計(jì)目標(biāo)

  1. 更友好的對待網(wǎng)站,而不使用默認(rèn)的下載延遲 0。
  2. 自動調(diào)整 scrapy 來優(yōu)化下載速度,使得用戶不用調(diào)節(jié)下載延遲及并發(fā)請求數(shù)來找到優(yōu)化的值。 用戶只需指定允許的最大并發(fā)請求數(shù),剩下的都交給擴(kuò)展來完成。

擴(kuò)展是如何實(shí)現(xiàn)的

在 Scrapy 中,下載延遲是通過計(jì)算建立 TCP 連接到接收到 HTTP 包頭(header)之間的時(shí)間來測量的。

注意,由于 Scrapy 可能在忙著處理 spider 的回調(diào)函數(shù)或者無法下載,因此在合作的多任務(wù)環(huán)境下準(zhǔn)確測量這些延遲是十分苦難的。 不過,這些延遲仍然是對 Scrapy(甚至是服務(wù)器)繁忙程度的合理測量,而這擴(kuò)展就是以此為前提進(jìn)行編寫的。

限速算法

算法根據(jù)以下規(guī)則調(diào)整下載延遲及并發(fā)數(shù):

  1. spider 永遠(yuǎn)以 1 并發(fā)請求數(shù)及 AUTOTHROTTLE_START_DELAY 中指定的下載延遲啟動。
  2. 當(dāng)接收到回復(fù)時(shí),下載延遲會調(diào)整到該回復(fù)的延遲與之前下載延遲之間的平均值。

注解

AutoThrottle 擴(kuò)展尊重標(biāo)準(zhǔn) Scrapy 設(shè)置中的并發(fā)數(shù)及延遲。這意味著其永遠(yuǎn)不會設(shè)置一個(gè)比 DOWNLOAD_DELAY 更低的下載延遲或者比 CONCURRENT_REQUESTS_PER_DOMAIN 更高的并發(fā)數(shù) (或 CONCURRENT_REQUESTS_PER_IP,取決于您使用哪一個(gè))。

設(shè)置

下面是控制 AutoThrottle 擴(kuò)展的設(shè)置:

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

更多內(nèi)容請參考限速算法

AUTOTHROTTLE_ENABLED

默認(rèn):False

啟用 AutoThrottle 擴(kuò)展。

AUTOTHROTTLE_START_DELAY

默認(rèn):5.0

初始下載延遲(單位:秒)。

AUTOTHROTTLE_MAX_DELAY

默認(rèn):60.0

在高延遲情況下最大的下載延遲(單位秒)。

AUTOTHROTTLE_DEBUG

默認(rèn):False

起用 AutoThrottle 調(diào)試(debug)模式,展示每個(gè)接收到的 response。您可以通過此來查看限速參數(shù)是如何實(shí)時(shí)被調(diào)整的。