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.
Scrapy fordeler som standard nedlastingsslots etter domenet til forespørselens URL. Å gi en forespørsel en HTTP-proxy gjør ikke at URL-en blir proxyens vertsnavn. Forespørsler til forskjellige nettsteder kan derfor beholde forskjellige slots mens de deler én mellommann.
AutoThrottle justerer forsinkelsen for hver slot basert på den observerte nedlastingslatensen. Den vanlige grensen for samtidighet per domene og den minste nedlastingsforsinkelsen gjelder fortsatt.
Kontroller grupperingen før du endrer algoritmen
En tilpasset middleware kan tildele request.meta["download_slot"] og overstyre det normale slotvalget. Noen proxy-utvidelser bruker sin egen gruppering. Se på disse innstillingene hvis urelaterte nettsteder ser ut til å dele én begrenser.
Omvendt kan et eget slot per proxy la flere proxyer kontakte samme mål samtidig. Det kan svekke en grense for hele nettstedet som crawleren skulle respektere. Velg slotnøkkelen ut fra ressursen som beskyttes.
Forsinkelsen omfatter veien du brukte
Scrapy måler latens fra forespørselen sendes til HTTP-hodene mottas. En forespørsel som går gjennom en proxy kan ta med mellommannens kø- og videresendingsforsinkelse i den målingen. AutoThrottle får ikke en egen behandlingstid kun for opphavet.
Økt samtidighet gjør ikke at målingen isolerer nettstedet. Hold høflighet mot målet og proxykapasitet som separate grenser når begge er viktige. En delt proxy kan trenge et ekstra samtidighetsbudsjett på tvers av målslots, mens hvert mål beholder sin egen hastighetspolicy.