Proxy pro každý požadavek s HTTP proxy middleware ve Scrapy
Použijte metadata požadavků Scrapy a jeho proxy middleware dříve, než do crawleru zkopírujete starý vlastní autentizační middleware.
HTTP proxy middleware Scrapy čte proxy z metadat požadavku:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Nahraďte koncový bod z dokumentace a middleware ponechte zapnutý. Seznam HTTP proxy nabízí veřejné kandidáty pro URL tohoto požadavku. Tím se volí trasa požadavku; fond proxy potřebuje samostatnou logiku výběru.
Autentizace následuje zvolený koncový bod
Vestavěný middleware zpracovává přihlašovací údaje dodané přes podporované URL proxy a související autorizační hlavičku. Escapujte rezervované znaky URL a vyhněte se logování tohoto URL.
Samostatný middleware by neměl po změně koncového bodu uchovávat hlavičku Basic pro předchozí proxy. Ať jedna vrstva spravuje trasu i její přihlašovací údaje společně.
Pořadí výběru a výchozí hodnoty
Pokud proxy vybírá vlastní downloader middleware, spusťte jej předtím, než vestavěný proxy middleware požadavek zpracuje. Zkontrolujte pořadí a API nainstalované verze; zastaralé importy scrapy.contrib patří ke starším verzím.
Prostředí procesu může také poskytovat výchozí hodnoty specifické pro schéma. Pro záměrně přímý požadavek použijte dokumentované speciální chování metadat proxy: chybějící klíč nemusí znamenat přímý přístup.
Zkontrolujte skutečný výsledek. 407 se týká autentizace proxy, zatímco limit rychlosti nebo odmítnutí přístupu ze strany webu může přijít poté, co trasa fungovala správně.