Por que pode faltar o cabeceiro de saída de ProxyMesh en Scrapy
ProxyMesh pode enviar metadatos de enrutamento en CONNECT antes de que Scrapy reciba a resposta cifrada do sitio web. Inspeccione a etapa de resposta que realmente os transporta.
A ausencia de X-ProxyMesh-IP nunha chamada HTTPS de Scrapy non demostra un enrutamento directo. Con HTTPS tunelizado, ProxyMesh coloca os cabeceiros de enrutamento na resposta CONNECT; a resposta posterior do sitio web vai dentro de TLS e non inclúe automaticamente eses metadatos anteriores.
Onde o cabeceiro se expón nunha chamada, lea 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 é a saída que informa o provedor para ese intercambio, non o nome de host de entrada configurado.
Se se necesitan metadatos do túnel, use unha integración de controlador compatible que expoña os cabeceiros CONNECT. ProxyMesh mantén unha para este propósito; comprobe a versión de Scrapy admitida e o controlador de descarga. A análise da araña non pode revelar cabeceiros que o transporte nunca proporcionou.
Asocie os metadatos coa súa conexión. Reutilizar un túnel non crea outra resposta CONNECT para cada páxina. Para unha dirección de orixe independente observada polo destino, inspeccione a conexión entrante dese destino en lugar de tratar o cabeceiro do provedor como un detector universal de IP.