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 zahtjeva.
Scrapy prema zadanim postavkama dodjeljuje slotove za preuzimanje na osnovu domene URL-a zahtjeva. Dodjeljivanje HTTP proxyja zahtjevu ne mijenja taj URL u ime hosta proxyja. Zahtjevi prema različitim sajtovima stoga mogu zadržati različite slotove dok dijele jedan posrednik.
AutoThrottle prilagođava kašnjenje svakog slota koristeći uočenu latenciju preuzimanja. Standardno ograničenje paralelnosti po domeni i minimalno kašnjenje preuzimanja i dalje važe.
Provjerite grupisanje prije promjene algoritma
Prilagođeni middleware može dodijeliti request.meta["download_slot"], nadjačavajući uobičajeni odabir slota. Neka proxy proširenja koriste vlastito grupisanje. Provjerite te postavke ako se čini da nepovezani sajtovi dijele jedan prigušivač.
Suprotno tome, dodjeljivanje 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 trebao poštovati. Odaberite ključ slota prema resursu koji se štiti.
Kašnjenje uključuje putanju koju ste koristili
Scrapy mjeri latenciju od slanja zahtjeva do primanja HTTP zaglavlja. Zahtjev koji prolazi kroz proxy može u to zapažanje uključiti kašnjenje posrednika u redu i prosljeđivanju. AutoThrottle ne dobija odvojeno vrijeme obrade samo izvora.
Povećanje paralelnosti ne može natjerati to mjerenje da izoluje sajt. Držite pristojnost prema cilju i kapacitet proxyja kao odvojena ograničenja kada su oba važna. Dijeljeni proxy može trebati dodatni budžet paralelnosti kroz slotove ciljeva, dok svaki cilj zadržava vlastitu politiku brzine.