Ein fehlender X-ProxyMesh-IP in einem HTTPS-Callback von Scrapy beweist kein direktes Routing. Bei getunneltem HTTPS legt ProxyMesh Routing-Header auf die CONNECT-Antwort; die spätere Website-Antwort liegt innerhalb von TLS und enthält diese früheren Metadaten nicht automatisch.

Wo der Header in einem Callback sichtbar ist, lesen Sie ihn bedingt:

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'))

Dies ist der vom Anbieter gemeldete Exit für diesen Austausch, nicht der konfigurierte Einstiegs-Hostname.

Wenn Tunnel-Metadaten benötigt werden, verwenden Sie eine kompatible Handler-Integration, die CONNECT-Header offenlegt. ProxyMesh unterhält genau dafür eine; prüfen Sie die unterstützte Scrapy-Version und den Download-Handler. Das Parsen im Spider kann keine Header offenlegen, die der Transport nie geliefert hat.

Verknüpfen Sie Metadaten mit ihrer Verbindung. Die Wiederverwendung eines Tunnels erzeugt nicht für jede Seite eine weitere CONNECT-Antwort. Für eine unabhängige, vom Ziel beobachtete Quelladresse prüfen Sie die eingehende Verbindung dieses Ziels, statt einen Anbieter-Header als universellen IP-Detektor zu behandeln.

Ähnliche Artikel