Adresa proxy se v protokolu mění. Cíl se nikdy neobjeví v přístupovém protokolu proxy. Zkontrolujte, zda váš middleware vůbec pustí požadavek ke stahovači.

V middleware stahovače ve Scrapy vrácení Request znamená znovu naplánovat tento požadavek. Neznamená to „pokračujte v odesílání tohoto objektu s metadaty, která jsem právě změnil“.

Pro selektor, který jen vybírá trasu, je důležitý tento tvar:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

Tento úryvek ukazuje současný tvar háku; použijte rozhraní middleware, které podporuje nainstalované vydání Scrapy. Selektor musí vrátit platný koncový bod a explicitně ošetřit nedostupný fond. Veřejné procházení, které povoluje veřejné prostředníky, může pro tuto návratovou hodnotu čerpat HTTP kandidáty ze seznamu HTTP proxy.

Vrácení None umožní zbytku middleware požadavku a stahovači pokračovat. Vrácení jiného Request je užitečné, když práci záměrně nahrazujete nebo opakujete, ale potřebuje důvod a podmínku ukončení.

Rotátor, který pokaždé vrací stejný požadavek, může opakovaně spouštět svůj vlastní kód výběru, aniž by kdy navázal spojení s cílem. Zvyšování časových limitů nebo otevírání dalších proxy portů tuto smyčku řízení toku neopraví.

Zkoumejte vstup do middleware, chování při vrácení a první skutečný síťový pokus jako samostatné události. Řádek protokolu „vybrána proxy“ dokazuje jen to, že selektor běžel. Nedokazuje, že byl odeslán požadavek s vybraným koncovým bodem.

Související články