Por qué puede faltar la cabecera de salida de ProxyMesh en Scrapy
ProxyMesh puede enviar metadatos de enrutamiento en CONNECT antes de que Scrapy reciba la respuesta cifrada del sitio web. Inspeccione la etapa de respuesta que realmente los transporta.
La ausencia de X-ProxyMesh-IP en una devolución de llamada HTTPS de Scrapy no demuestra un enrutamiento directo. Con HTTPS tunelizado, ProxyMesh coloca las cabeceras de enrutamiento en la respuesta CONNECT; la respuesta posterior del sitio web va dentro de TLS y no incluye automáticamente esos metadatos anteriores.
Donde la cabecera se expone en una devolución de llamada, léala de forma condicional:
exit_ip = response.headers.get(b'X-ProxyMesh-IP')
if exit_ip is not None:
self.logger.info('Reported exit IP: %s', exit_ip.decode('ascii'))
Esta es la salida que informa el proveedor para ese intercambio, no el nombre de host de entrada configurado.
Si se necesitan metadatos del túnel, use una integración de controlador compatible que exponga las cabeceras CONNECT. ProxyMesh mantiene una para este propósito; compruebe la versión de Scrapy admitida y el controlador de descarga. El análisis de la araña no puede revelar cabeceras que el transporte nunca proporcionó.
Asocie los metadatos con su conexión. Reutilizar un túnel no crea otra respuesta CONNECT para cada página. Para obtener una dirección de origen independiente observada por el destino, inspeccione la conexión entrante de ese destino en lugar de tratar la cabecera del proveedor como un detector universal de IP.