Scrapy yönləndirməni izləməzdən əvvəl göstərə bilər
Proksilənmiş GET sorğusunun ilkin yönləndirmə statusunu və Location başlığını sorğu metadatası vasitəsilə müvəqqəti açıqla; yönləndirmə emalını HTTP xəta filtrindən ayrı saxla.
Proksilənmiş GET serverə çata və sonra yönləndirmələri izləyə bilər; nəticədə yekun uğursuzluq ilk cavabı gizlədir. Həmin ilkin cavabı diaqnostika üçün açıqla:
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],
},
)
Bu sorğunu hörümçəyin mövcud başlanğıc və ya callback axını ilə planlaşdır. İcazəli ictimai səhifə yoxlaması üçün HTTP proksi siyahısı sorğunun proksi URL-i üçün namizədlər təqdim edir. inspect_redirect cavab statusunu və Location başlığını qeyd etməlidir, onu yenidən kor-koranə izləmək əvəzinə.
dont_redirect bu sorğu üçün avtomatik yönləndirməni dayandırır. handle_httpstatus_list göstərilən statusların HTTP xəta filtri tərəfindən rədd edilmək əvəzinə callback-ə çatmasına imkan verir. Bu parametrlər middleware-in müxtəlif məsuliyyətlərinə aiddir.
Yönləndirmənin nəyi seçdiyini yoxla: nəzərdə tutulan kanonik URL, fərqli sxem və ya host adı, giriş səhifəsi və ya təkrarlanan dövr. Uğurlu ötürmədən sonra alınan 302, proksi bağlantısının açıla bilməməsindən fərqli müşahidədir.
Normal yönləndirmə emalı bərpa edildikdə, Scrapy cavabın sorğu metadatasında redirect_urls və redirect_reasons göstərir. Bunlar yönləndirmələri bütün crawl boyu söndürülmüş qoymadan yekun nəticəyə aparan yolu saxlaya bilər.
Yekun cavab avtomatik olaraq tətbiqin nəzərdə tutduğu səhifə deyil. Təyinatı və cavab məzmununu marşrut diaqnostikası ilə birlikdə saxla.