A Scrapy meg tudja mutatni az átirányítást, mielőtt követné
Ideiglenesen tedd láthatóvá egy proxyn keresztüli GET kezdeti átirányítási állapotát és Location fejlécét a kérés metaadatai révén, az átirányítások kezelését az HTTP-hibák szűrésétől elkülönítve.
Egy proxyn keresztüli GET elérhet egy szervert, majd követheti az átirányításokat, míg a végső hiba el nem rejti az első választ. Tedd láthatóvá ezt a kezdeti választ a diagnosztikához:
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],
},
)
Ütemezd ezt a kérést a pók meglévő indítási vagy callback folyamatán keresztül. Engedélyezett nyilvános oldal vizsgálatához a HTTP proxy lista jelölteket ad a kérés proxy URL-jéhez. Az inspect_redirectnek rögzítenie kell a válasz állapotát és a Location fejlécet, ahelyett hogy újra vakon követné.
A dont_redirect leállítja az automatikus átirányítást ehhez a kéréshez. A handle_httpstatus_list lehetővé teszi, hogy a megnevezett állapotok eljussanak a callbackhez, ahelyett hogy az HTTP-hiba szűrés elutasítaná őket. A beállítások a middleware különböző felelősségeit érintik.
Ellenőrizd, mit választ az átirányítás: szándékolt kanonikus URL-t, eltérő sémát vagy gazdanevet, bejelentkező oldalt vagy ismétlődő ciklust. A sikeres átvitel után kapott 302 más megfigyelés, mint a proxy kapcsolat megnyitásának kudarca.
Amikor a normál átirányításkezelés helyreáll, a Scrapy a válasz kérés-metaadataiban megjeleníti a redirect_urls és redirect_reasons mezőket. Ezek megőrizhetik a végeredményhez vezető utat anélkül, hogy az átirányítások a teljes bejárás alatt letiltva maradnának.
A végső válasz nem automatikusan az az oldal, amelyet az alkalmazás szánt. Őrizd meg az úti célt és a válasz tartalmát az útvonal-diagnosztikával együtt.