Scrapy kan vise omdirigeringen før den blir fulgt
Eksponer midlertidig den innledende omdirigeringsstatusen og Location for en proxyert GET gjennom metadata for forespørselen, mens håndtering av omdirigeringer holdes atskilt fra HTTP-feilfiltrering.
En proxyert GET kan nå en server og deretter følge omdirigeringer helt til den endelige feilen skjuler det første svaret. Eksponer dette første svaret for diagnostikk:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
Planlegg denne forespørselen gjennom edderkoppens eksisterende start- eller callback-flyt. For en tillatt test av en offentlig side leverer HTTP-proxylisten kandidater for proxy-URL-en til forespørselen. inspect_redirect bør registrere svarstatusen og Location-headeren framfor å følge den igjen i blinde.
dont_redirect stopper automatisk omdirigering for denne forespørselen. handle_httpstatus_list lar de navngitte statusene nå callbacken i stedet for å bli avvist av HTTP-feilfiltrering. Innstillingene gjelder forskjellige middleware-ansvar.
Kontroller hva omdirigeringen velger: en tiltenkt kanonisk URL, et annet scheme eller vertsnavn, en innloggingsside eller en syklus som gjentar seg. En 302 som mottas etter vellykket transport, er en annen observasjon enn å ikke få åpnet proxyforbindelsen.
Når normal håndtering av omdirigeringer er gjenopprettet, eksponerer Scrapy redirect_urls og redirect_reasons i forespørselsmetadataen til svaret. Disse kan bevare veien til et endelig resultat uten å la omdirigeringer være deaktivert gjennom hele crawl.
Et endelig svar er ikke automatisk siden applikasjonen hadde til hensikt. Ta vare på destinasjonen og svarinnholdet sammen med rutingsdiagnosen.