Scrapy može prikazati preusmeravanje pre nego što ga prati
Privremeno izložite početni status preusmeravanja i Location proxy GET zahteva kroz metapodatke zahteva, držeći rukovanje preusmeravanjima odvojeno od filtriranja HTTP grešaka.
Proxy GET može doći do servera i zatim pratiti preusmeravanja sve dok konačni neuspeh ne sakrije prvi odgovor. Izložite taj početni odgovor radi dijagnostike:
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],
},
)
Zakažite ovaj zahtev kroz postojeći tok pokretanja ili callback pauka. Za dozvoljenu proveru javne stranice lista HTTP proxyja nudi kandidate za proxy URL zahteva. inspect_redirect treba da zabeleži status odgovora i zaglavlje Location umesto da ga ponovo slepo prati.
dont_redirect zaustavlja automatsko preusmeravanje za ovaj zahtev. handle_httpstatus_list omogućava navedenim statusima da dođu do callbacka umesto da ih filtrira HTTP greška. Postavke se odnose na različite odgovornosti middlewarea.
Proverite šta preusmeravanje bira: željeni kanonski URL, drugu šemu ili naziv hosta, stranicu za prijavu ili ciklus koji se ponavlja. 302 primljen nakon uspešnog prenosa različito je zapažanje od neuspeha otvaranja proxy veze.
Kada se normalno rukovanje preusmeravanjima vrati, Scrapy izlaže redirect_urls i redirect_reasons u metapodacima zahteva odgovora. Oni mogu sačuvati put do konačnog rezultata bez ostavljanja preusmeravanja onemogućenih tokom celog crawla.
Konačni odgovor nije automatski stranica koju je aplikacija nameravala. Čuvajte odredište i sadržaj odgovora uz dijagnostiku rutiranja.