Proxy GET може доћи до сервера и затим пратити преусмеравања све док коначни неуспех не сакрије први одговор. Изложите тај почетни одговор ради дијагностике:

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

Закажите овај захтев кроз постојећи ток покретања или callback паука. За дозвољену проверу јавне странице листа HTTP proxy сервера нуди кандидате за proxy URL захтева. inspect_redirect треба да забележи статус одговора и заглавље Location уместо да га поново слепо прати.

dont_redirect зауставља аутоматско преусмеравање за овај захтев. handle_httpstatus_list омогућава наведеним статусима да дођу до callback-а уместо да их одбије HTTP грешка. Поставке се односе на различите одговорности middleware-а.

Проверите шта преусмеравање бира: жељени канонски URL, другу шему или назив хоста, страницу за пријаву или циклус који се понавља. 302 примљен након успешног преноса је различито запажање од неуспеха отварања proxy везе.

Када се нормално руковање преусмеравањима врати, Scrapy излаже redirect_urls и redirect_reasons у метаподацима захтева одговора. Они могу сачувати пут до коначног резултата без остављања преусмеравања онемогућених током целог прегледања.

Коначни одговор није аутоматски страница коју је апликација намеравала. Чувајте одредиште и садржај одговора уз дијагностику рутирања.

Повезани чланци