'n Geproksieerde GET kan 'n bediener bereik en dan herleidings volg totdat die uiteindelike fout die eerste antwoord verberg. Stel daardie aanvanklike antwoord vir diagnose bloot:

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],
    },
)

Beplan hierdie versoek deur die spinnekop se bestaande begin- of callback-vloei. Vir 'n toegelate publieke bladsy-toets verskaf die HTTP-proksilys kandidate vir die versoek se proksie-URL. inspect_redirect moet die antwoordstatus en die Location-kopstuk aanteken eerder as om dit blindelings weer te volg.

dont_redirect stop outomatiese herleiding vir hierdie versoek. handle_httpstatus_list laat die genoemde statusse die callback bereik eerder as om deur HTTP-foutfiltrering verwerp te word. Die instellings raak verskillende middleware-verantwoordelikhede.

Kontroleer wat die herleiding kies: 'n beoogde kanoniese URL, 'n ander skema of gasheernaam, 'n aanmeldbladsy of 'n herhalende siklus. 'n 302 wat ná suksesvolle vervoer ontvang word, is 'n ander waarneming as om die proksieverbinding te kon oopmaak.

Wanneer normale herleidingshantering herstel word, wys Scrapy redirect_urls en redirect_reasons in die antwoord se versoekmetadata. Dit kan die pad na 'n finale resultaat bewaar sonder om herleidings vir die hele crawl gedeaktiveer te laat.

'n Terminale antwoord is nie outomaties die bladsy wat die toepassing bedoel het nie. Hou die bestemming en antwoordinhoud by die roeteringsdiagnose.

Verwante artikels