Scrapy inaweza kuonyesha uelekezaji upya kabla ya kuufuata
Fichua kwa muda hali ya awali ya uelekezaji upya na Location ya GET kupitia proksi kwa metadata ya ombi, ukitatua ushughulikiaji wa uelekezaji upya kutoka kuchuja hitilafu za HTTP.
GET kupitia proksi inaweza kufikia seva kisha kufuata uelekezaji upya hadi kushindwa kwa mwisho kufiche jibu la kwanza. Fichua jibu hilo la awali kwa uchunguzi:
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],
},
)
Panga ombi hili kupitia mtiririko uliopo wa kuanza au callback wa buibui. Kwa jaribio la ukurasa wa umma linaloruhusiwa, orodha ya proksi za HTTP hutoa wagombea wa URL ya proksi ya ombi. inspect_redirect inapaswa kurekodi hali ya jibu na kichwa cha Location badala ya kuifuata tena kwa upofu.
dont_redirect inasimamisha uelekezaji upya wa kiotomatiki kwa ombi hili. handle_httpstatus_list huruhusu hali zilizotajwa kufikia callback badala ya kukataliwa na kuchuja hitilafu za HTTP. Mipangilio hii inahusu majukumu tofauti ya middleware.
Angalia kile uelekezaji upya unachagua: URL kanoniki inayokusudiwa, mpango au jina la mwenyeji tofauti, ukurasa wa kuingia, au mzunguko unaojirudia. 302 inayopokelewa baada ya usafirishaji wenye mafanikio ni uchunguzi tofauti na kushindwa kufungua muunganisho wa proksi.
Ushughulikiaji wa kawaida wa uelekezaji upya unaporejeshwa, Scrapy hufichua redirect_urls na redirect_reasons katika metadata ya ombi ya jibu. Hizi zinaweza kuhifadhi njia kuelekea matokeo ya mwisho bila kuacha uelekezaji upya umezimwa kwa utafutaji wote.
Jibu la mwisho si lazima liwe ukurasa uliokusudiwa na programu. Hifadhi lengwa na maudhui ya jibu pamoja na uchunguzi wa uelekezaji.