O enderezo do proxy cambia no rexistro. O destino nunca aparece no rexistro de acceso do proxy. Comprobe se o seu middleware deixa que a solicitude chegue ao descargador.

No middleware do descargador de Scrapy, devolver un Request significa reprogramar esa solicitude. Non significa «siga enviando este obxecto cos metadatos que acabo de cambiar».

Para un selector que só escolle unha ruta, a forma importante é:

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

Este fragmento mostra a forma actual do gancho; use a interface de middleware que admita a versión de Scrapy instalada. O selector debe devolver un punto final válido e xestionar explicitamente un conxunto non dispoñible. Un rastrexo público que permite intermediarios públicos pode tomar candidatos HTTP da lista de proxies HTTP para ese valor de retorno.

Devolver None permite que o resto do middleware de solicitudes e o descargador continúen. Devolver outro Request é útil cando se substitúe ou se reintenta traballo de forma intencionada, pero necesita un motivo e unha condición de saída.

Un rotador que devolve a mesma solicitude cada vez pode executar repetidamente o seu propio código de selección sen chegar nunca a establecer unha conexión co destino. Aumentar os tempos de espera ou abrir máis portos de proxy non pode reparar ese bucle de fluxo de control.

Examine a entrada do middleware, o comportamento de retorno e o primeiro intento de rede real como acontecementos separados. Unha liña de rexistro que di «proxy seleccionado» só demostra que o selector se executou. Non demostra que se enviase unha solicitude co punto final seleccionado.

Artaigilean co-cheangailte