Scrapy може да го прикаже пренасочувањето пред да го следи
Привремено изложете го почетниот статус на пренасочување и Location на прокси GET преку метаподатоци на барањето, држејќи ја обработката на пренасочувања одвоена од филтрирањето на HTTP грешки.
Прокси 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 прокси нуди кандидати за прокси URL на барањето. inspect_redirect треба да го запише статусот на одговорот и заглавјето Location наместо повторно слепо да го следи.
dont_redirect го запира автоматското пренасочување за ова барање. handle_httpstatus_list им овозможува на наведените статуси да стигнат до callback наместо да бидат отфрлени од филтрирањето на HTTP грешки. Поставките се однесуваат на различни одговорности на middleware.
Проверете што избира пренасочувањето: предвидениот канонски URL, друга шема или име на домаќин, страница за најава или циклус што се повторува. 302 применет по успешен пренос е различно набљудување од неуспехот да се отвори прокси врската.
Кога нормалната обработка на пренасочувања е обновена, Scrapy ги изложува redirect_urls и redirect_reasons во метаподатоците на барањето на одговорот. Тие можат да ја зачуваат патеката до конечниот резултат без да остават пренасочувањата оневозможени за целото пребарување.
Конечниот одговор не е автоматски страницата што апликацијата ја имала намера. Чувајте ја дестинацијата и содржината на одговорот заедно со дијагностиката на рутирањето.