Ein proxyert GET kan nå ein tenar og deretter følgje omdirigeringar til den endelege feilen gøymer det første svaret. Gjer dette innleiande svaret synleg 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 førespurnaden gjennom den eksisterande start- eller callbackstraumen til edderkoppen. For ein tillaten test av ei open side leverer HTTP-proxylista kandidatar for proxy-URL-en til førespurnaden. inspect_redirect bør registrere svarstatusen og Location-headeren i staden for å følgje ho igjen i blinde.

dont_redirect stoppar automatisk omdirigering for denne førespurnaden. handle_httpstatus_list lèt dei namngjevne statusane nå callbacken i staden for å bli avviste av HTTP-feilfiltrering. Innstillingane gjeld ulike middleware-ansvar.

Kontroller kva omdirigeringa vel: ein tiltenkt kanonisk URL, eit anna scheme eller vertsnamn, ei innloggingsside eller ein gjenteken syklus. Ein 302 motteken etter vellukka transport er ei anna observasjon enn å mislukkast med å opne proxyforbindinga.

Når normal handsaming av omdirigeringar er gjenoppretta, viser Scrapy redirect_urls og redirect_reasons i førespurnadsmetadataen til svaret. Desse kan ta vare på vegen til eit endeleg resultat utan å la omdirigeringar vere deaktiverte under heile crawl.

Eit endeleg svar er ikkje automatisk sida applikasjonen hadde til hensikt. Hald destinasjonen og svarinnhaldet saman med rutingsdiagnosen.

Relaterte artiklar