Scrapy AutoThrottle kroz proxy: slotovi i latencija
Držite slotove za preuzimanje ciljnog sajta odvojeno od proxy ruta i tumačite latenciju kao uočenu putanju zahteva.
Scrapy podrazumevano dodeljuje slotove za preuzimanje prema domenu URL-a zahteva. Dodela HTTP proxyja zahtevu ne pretvara taj URL u ime hosta proxyja. Zahtevi ka različitim sajtovima zato mogu zadržati različite slotove dok dele jednog posrednika.
AutoThrottle prilagođava kašnjenje svakog slota prema uočenoj latenciji preuzimanja. Standardno ograničenje paralelnosti po domenu i minimalno kašnjenje preuzimanja i dalje važe.
Proverite grupisanje pre promene algoritma
Prilagođeni middleware može dodeliti request.meta["download_slot"] i time nadjačati uobičajeni izbor slota. Neka proxy proširenja koriste sopstveno grupisanje. Proverite ta podešavanja ako se čini da nepovezani sajtovi dele jedno ograničenje.
Suprotno tome, dodela različitog slota za svaki proxy može omogućiti više proxyja da istovremeno kontaktiraju isti cilj. To može poništiti ograničenje na nivou sajta koje je crawler trebalo da poštuje. Izaberite ključ slota prema resursu koji se štiti.
Kašnjenje uključuje putanju koju ste koristili
Scrapy meri latenciju od slanja zahteva do primanja HTTP zaglavlja. Zahtev koji prolazi kroz proxy može u to zapažanje uključiti kašnjenje posrednika u redu i prosleđivanju. AutoThrottle ne dobija zasebno vreme obrade samo izvora.
Povećanje paralelnosti ne može naterati to merenje da izoluje sajt. Držite pristojnost prema cilju i kapacitet proxyja kao odvojena ograničenja kada su oba važna. Deljeni proxy može zahtevati dodatni budžet paralelnosti kroz slotove ciljeva, dok svaki cilj zadržava sopstvenu politiku brzine.