Scrapy AutoThrottle cez proxy: sloty a latencia
Držte sťahovacie sloty cieľovej stránky oddelene od trás proxy a latenciu vysvetľujte ako pozorovanú cestu požiadavky.
Predvolene Scrapy priraďuje sťahovacie sloty podľa domény URL požiadavky. Pridanie HTTP proxy k požiadavke nezmení túto URL na názov hostiteľa proxy. Požiadavky na rôzne stránky tak môžu mať rôzne sloty, hoci zdieľajú jedného sprostredkovateľa.
AutoThrottle upravuje oneskorenie každého slotu podľa pozorovanej latencie sťahovania. Štandardný limit súbežnosti na doménu a minimálne oneskorenie sťahovania stále platia.
Pred zmenou algoritmu skontrolujte zoskupenie
Vlastný middleware môže priradiť request.meta["download_slot"] a prepísať tak bežný výber slotu. Niektoré rozšírenia proxy používajú vlastné zoskupenie. Preverte tieto nastavenia, ak sa zdá, že nesúvisiace stránky zdieľajú jeden obmedzovač.
Naopak, priradenie iného slotu pre každú proxy môže umožniť viacerým proxy súčasne kontaktovať rovnaký cieľ. Môže to narušiť limit pre celú stránku, ktorý mal crawler rešpektovať. Kľúč slotu vyberte podľa chráneného zdroja.
Oneskorenie zahŕňa cestu, ktorú ste použili
Scrapy meria latenciu od odoslania požiadavky po prijatie hlavičiek HTTP. Požiadavka vedená cez proxy môže do tohto pozorovania zahrnúť oneskorenie sprostredkovateľa v rade a pri preposielaní. AutoThrottle nezíska osobitný čas spracovania len na strane pôvodu.
Zvýšenie súbežnosti nedosiahne, aby toto meranie izolovalo stránku. Udržujte ohľaduplnosť voči cieľu a kapacitu proxy ako oddelené limity, keď sú dôležité obe. Zdieľaná proxy môže potrebovať dodatočný rozpočet súbežnosti naprieč slotmi cieľov, pričom každý cieľ si zachováva vlastnú politiku tempa.