Scrapy kan vise omdirigeringen, før den følges
Eksponér midlertidigt en proxyeret GET-anmodnings indledende omdirigeringsstatus og Location via anmodningsmetadata, og hold omdirigeringshåndtering adskilt fra HTTP-fejlfiltrering.
En proxyeret GET kan nå en server og derefter følge omdirigeringer, indtil den endelige fejl skjuler det første svar. Eksponér dette indledende svar til diagnosticering:
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],
},
)
Planlæg denne anmodning gennem edderkoppens eksisterende start- eller callback-flow. Til en tilladt offentlig side-test leverer HTTP-proxylisten kandidater til anmodningens proxy-URL. inspect_redirect bør registrere svarets status og Location-headeren i stedet for at følge den igen i blinde.
dont_redirect stopper automatisk omdirigering for denne anmodning. handle_httpstatus_list lader de navngivne statusser nå callbacken i stedet for at blive afvist af HTTP-fejlfiltrering. Indstillingerne vedrører forskellige middleware-ansvar.
Kontrollér, hvad omdirigeringen vælger: en tilsigtet kanonisk URL, et andet scheme eller værtsnavn, en login-side eller en gentagen cyklus. En 302 modtaget efter vellykket transport er en anden observation end at kunne åbne proxyforbindelsen.
Når normal omdirigeringshåndtering gendannes, eksponerer Scrapy redirect_urls og redirect_reasons i svarets anmodningsmetadata. De kan bevare vejen til et endeligt resultat uden at lade omdirigeringer være deaktiveret under hele crawl.
Et endeligt svar er ikke automatisk den side, applikationen havde til hensigt. Behold destinationen og svarindholdet sammen med routingdiagnosen.