Scrapy var parādīt pāradresāciju pirms tās sekošanas
Īslaicīgi atklājiet starpniekservera GET sākotnējo pāradresācijas statusu un Location pieprasījuma metadatos, turot pāradresāciju apstrādi atsevišķi no HTTP kļūdu filtrēšanas.
Starpniekservera GET var sasniegt serveri un pēc tam sekot pāradresācijām, līdz galīgā kļūme aizsedz pirmo atbildi. Atklājiet šo sākotnējo atbildi diagnostikai:
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],
},
)
Ieplānojiet šo pieprasījumu caur zirnekļa esošo starta vai callback plūsmu. Atļautai publiskas lapas pārbaudei HTTP starpniekserveru saraksts piedāvā kandidātus pieprasījuma starpniekservera URL. inspect_redirect jāreģistrē atbildes statuss un Location galvene, nevis atkal akli tai sekot.
dont_redirect aptur automātisko pāradresāciju šim pieprasījumam. handle_httpstatus_list ļauj nosauktajiem statusiem sasniegt callback, nevis tikt noraidītiem HTTP kļūdu filtrēšanā. Šie iestatījumi attiecas uz dažādiem middleware pienākumiem.
Pārbaudiet, ko pāradresācija izvēlas: paredzēto kanonisko URL, citu shēmu vai resursdatora nosaukumu, pieteikšanās lapu vai atkārtotu ciklu. 302, kas saņemts pēc veiksmīgas pārsūtīšanas, ir cits novērojums nekā nespēja atvērt starpniekservera savienojumu.
Kad parastā pāradresāciju apstrāde tiek atjaunota, Scrapy atklāj redirect_urls un redirect_reasons atbildes pieprasījuma metadatos. Tie var saglabāt ceļu uz gala rezultātu, neatstājot pāradresācijas atspējotas visā pārlūkošanā.
Galīgā atbilde nav automātiski tā lapa, ko lietojumprogramma bija iecerējusi. Saglabājiet galamērķi un atbildes saturu kopā ar maršrutēšanas diagnostiku.