Scrapy umí zobrazit přesměrování dřív, než ho následuje
Dočasně vystavte počáteční stav přesměrování a hlavičku Location proxy GET požadavku prostřednictvím metadat požadavku a ponechte zpracování přesměrování oddělené od filtrování HTTP chyb.
Proxy GET může dosáhnout serveru a poté následovat přesměrování, dokud konečné selhání nezakryje první odpověď. Vystavte tuto počáteční odpověď pro diagnostiku:
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],
},
)
Naplánujte tento požadavek stávajícím tokem spuštění nebo callbacku pavouka. Pro povolenou kontrolu veřejné stránky seznam HTTP proxy poskytuje kandidáty pro proxy URL požadavku. inspect_redirect má zaznamenat stav odpovědi a hlavičku Location místo toho, aby ji znovu slepě následoval.
dont_redirect zastaví automatické přesměrování pro tento požadavek. handle_httpstatus_list umožní uvedeným stavům dostat se do callbacku místo toho, aby je odmítlo filtrování HTTP chyb. Nastavení se týkají různých odpovědností middleware.
Zkontrolujte, co přesměrování vybírá: zamýšlenou kanonickou URL, jiné schéma nebo název hostitele, přihlašovací stránku nebo opakující se cyklus. 302 přijaté po úspěšném přenosu je jiné pozorování než selhání otevřít proxy spojení.
Když se obnoví běžné zpracování přesměrování, Scrapy vystaví redirect_urls a redirect_reasons v metadatech požadavku odpovědi. Ty mohou zachovat cestu ke konečnému výsledku, aniž by přesměrování zůstala vypnutá po celé procházení.
Konečná odpověď není automaticky stránka, kterou aplikace zamýšlela. Uchovávejte cíl a obsah odpovědi spolu s diagnostikou směrování.