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.

Makala zinazohusiana