Scrapy багыттоону ага ээрчүүдөн мурун көрсөтө алат
Проксиленген GET суроосунун баштапкы багыттоо статусун жана Location баштыгын суроо метаберилиштери аркылуу убактылуу ачып көрсөтүңүз, багыттоону иштетүүнү 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],
},
)
Бул суроону жөргөмүштүн учурдагы start же callback агымы аркылуу пландаштырыңыз. Уруксат берилген коомдук баракчаны текшерүү үчүн HTTP проксилердин тизмеси суроонун прокси URL үчүн талапкерлерди сунуштайт. inspect_redirect жооптун статусун жана Location баштыгын жазып алышы керек, аны кайра сокур ээрчүүнүн ордуна.
dont_redirect бул суроо үчүн автоматтык багыттоону токтотот. handle_httpstatus_list аталган статустардын HTTP каталарын фильтрлөө менен четке кагылбай callbackке жетишине жол берет. Бул жөндөөлөр middlewareдин ар кандай жоопкерчиликтерине тиешелүү.
Багыттоо эмнени тандап жатканын текшериңиз: көздөлгөн канондук URL, башка схема же хост аты, кирүү баракчасы же кайталануучу цикл. Ийгиликтүү ташуудан кийин алынган 302 прокси байланышын ача албагандыктан башка байкоо болуп саналат.
Кадимки багыттоо иштетүү калыбына келтирилгенде, Scrapy жооптун суроо метаберилиштеринде redirect_urls жана redirect_reasons көрсөтөт. Алар бүткүл шардоо бою багыттоолорду өчүк калтырбастан акыркы натыйжага алып баруучу жолду сактай алат.
Акыркы жооп колдонмо көздөгөн баракча эмес. Барар жери менен жооптун мазмунун маршруттоо диагностикасы менен бирге сактаңыз.