Ve výchozím nastavení přiřazuje Scrapy stahovací sloty podle domény z URL požadavku. Přidání HTTP proxy k požadavku nezmění tuto URL na název hostitele proxy. Požadavky na různé weby tak mohou mít různé sloty, i když sdílejí jednoho prostředníka.

AutoThrottle upravuje zpoždění každého slotu podle pozorované latence stahování. Standardní limit souběžnosti na doménu a minimální zpoždění stahování stále platí.

Než změníte algoritmus, zkontrolujte seskupení

Vlastní middleware může přiřadit request.meta["download_slot"] a přepsat tak běžný výběr slotu. Některá rozšíření proxy používají vlastní seskupení. Prohlédněte tato nastavení, pokud se zdá, že nesouvisející weby sdílejí jeden omezovač.

Naopak přiřazení jiného slotu pro každou proxy může umožnit, aby více proxy současně kontaktovalo stejný cíl. Může to narušit limit pro celý web, který měl crawler respektovat. Klíč slotu volte podle chráněného zdroje.

Zpoždění zahrnuje cestu, kterou jste použili

Scrapy měří latenci od odeslání požadavku do přijetí hlaviček HTTP. Požadavek vedený přes proxy může do tohoto pozorování zahrnout zpoždění prostředníka ve frontě a při předávání. AutoThrottle nezískává samostatný čas zpracování pouze na původním serveru.

Zvýšení souběžnosti nemůže zajistit, aby toto měření web izolovalo. Udržujte ohleduplnost k cíli a kapacitu proxy jako oddělené limity, pokud záleží na obou. Sdílená proxy může potřebovat další rozpočet souběžnosti napříč sloty cílů, zatímco každý cíl si ponechává vlastní politiku tempa.

Související články