Scrapy AutoThrottle proxyn át: slotok és késleltetés
Tartsa külön a célwebhely letöltési slotjait a proxy útvonalaktól, és a késleltetést a megfigyelt kérési útvonalként értelmezze.
Alapértelmezés szerint a Scrapy a kérés URL-jének domainje alapján osztja ki a letöltési slotokat. Ha egy kérésnek HTTP-proxyt adunk, az nem változtatja meg azt az URL-t a proxy hosztnevére. A különböző webhelyekre irányuló kérések ezért különböző slotokat tarthatnak meg, miközben egy közvetítőt osztanak meg.
Az AutoThrottle a megfigyelt letöltési késleltetés alapján állítja be az egyes slotok késleltetését. A szokásos domainenkénti párhuzamossági korlát és a minimális letöltési késleltetés továbbra is érvényes.
A csoportosítást az algoritmus módosítása előtt ellenőrizze
Egy egyéni middleware hozzárendelheti a request.meta["download_slot"] értéket, felülírva a szokásos slotkiválasztást. Egyes proxy-kiterjesztések saját csoportosítást használnak. Vizsgálja meg ezeket a beállításokat, ha úgy tűnik, hogy független webhelyek egyetlen korlátozót osztanak meg.
Fordítva, ha minden proxyhoz más slotot rendelünk, több proxy egyszerre érheti el ugyanazt a célt. Ez alááshat egy webhelyszintű korlátot, amelyet a crawlernek tiszteletben kellett tartania. A slot kulcsát a védett erőforrás szerint válassza meg.
A késleltetés magában foglalja a használt útvonalat
A Scrapy a késleltetést a kérés elküldésétől a HTTP-fejlécek fogadásáig méri. Egy proxyn keresztül továbbított kérés magában foglalhatja ebben a megfigyelésben a közvetítő sorban állási és továbbítási késleltetését. Az AutoThrottle nem kap külön, csak az eredetre vonatkozó feldolgozási időt.
A párhuzamosság növelése nem teheti ezt a mérést a webhelyet izoláló méréssé. Tartsa külön a cél iránti udvariasságot és a proxy kapacitását, amikor mindkettő számít. Egy megosztott proxynak szüksége lehet további párhuzamossági keretre a célslotok között, miközben minden cél megtartja saját sebességpolitikáját.