Use a Request asociada á resposta completada cando examine a súa ruta seleccionada. Manteña tres observacións por separado:

CampoSignificado
response.request.meta.get('proxy')A URL do proxy seleccionado desta solicitude, cando existe
response.ip_addressEnderezo proporcionado polo manexador de descargas, posiblemente None
Informe de orixe dun destino de confianzaA orixe pública observada alí

Dentro dun callback, omita as partes da URL con credenciais no diagnóstico habitual:

from urllib.parse import urlsplit

proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
    'target_host=%s proxy_host=%s peer_ip=%s',
    urlsplit(response.url).hostname, proxy_host, response.ip_address,
)

No manexador HTTP/1.1 de Scrapy 2.13.3 o enderezo vén do par da conexión da resposta, non dun servizo de IP de saída. Algunhas rutas, incluídas as respostas de lonxitude cero, poden deixalo en None. Outros manexadores poden enchedelo doutro xeito. None por si só non demostra un encamiñamento directo.

Para comprobar a saída, consulte un endpoint de confianza baixo a política de proxy prevista e conserve a identidade da solicitude xunto coa observación. Un middleware rotativo pode dar outro enderezo a unha comprobación posterior.

As redireccións tamén crean outra solicitude. Os metadatos finais describen esa etapa; revise o historial de redireccións e calquera nova selección do middleware en lugar de tomalo como proba da ruta da primeira URL.

Artigos relacionados