Scrapy AutoThrottle gjennom en proxy: slots og latens
Hold målområdets nedlastingsslots atskilt fra proxy-ruter, og tolk latens som den observerte forespørselsveien.
Som standard tildeler Scrapy nedlastingsslots ut fra domenet til forespørselens URL. Å gi en forespørsel en HTTP-proxy endrer ikke den URL-en til proxyens vertsnavn. Forespørsler til ulike nettsteder kan derfor beholde ulike slots mens de deler én mellommann.
AutoThrottle justerer forsinkelsen for hver slot ut fra den observerte nedlastingslatensen. Standardgrensen for samtidighet per domene og minste nedlastingsforsinkelse gjelder fortsatt.
Sjekk grupperingen før du endrer algoritmen
En egendefinert middleware kan tildele request.meta["download_slot"] og overstyre det vanlige slotvalget. Noen proxy-utvidelser bruker sin egen gruppering. Undersøk disse innstillingene hvis urelaterte nettsteder ser ut til å dele én begrenser.
Motsatt kan tildeling av et annet slot for hver proxy la flere proxyer kontakte samme mål samtidig. Det kan undergrave en grense for hele nettstedet som crawleren skulle respektere. Velg slotnøkkelen etter ressursen som beskyttes.
Forsinkelsen inkluderer veien du brukte
Scrapy måler latens fra forespørselen sendes til HTTP-hoder mottas. En forespørsel som føres gjennom en proxy kan inkludere mellommannens kø- og videresendingsforsinkelse i den observasjonen. AutoThrottle får ikke en egen behandlingstid bare for opprinnelsen.
Økt samtidighet kan ikke få den målingen til å isolere nettstedet. Hold målhøflighet og proxykapasitet som atskilte grenser når begge betyr noe. En delt proxy kan trenge et ekstra samtidighetsbudsjett på tvers av målslots, mens hvert mål beholder sin egen hastighetspolicy.