L'absence de X-ProxyMesh-IP dans un callback HTTPS de Scrapy ne prouve pas un routage direct. Avec HTTPS tunnelisé, ProxyMesh place les en-têtes de routage sur la réponse CONNECT ; la réponse ultérieure du site se trouve dans TLS et n'inclut pas automatiquement ces métadonnées antérieures.

Là où l'en-tête est exposé dans un callback, lisez-le de façon conditionnelle :

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

Il s'agit de la sortie rapportée par le fournisseur pour cet échange, et non du nom d'hôte d'entrée configuré.

Si les métadonnées du tunnel sont nécessaires, utilisez une intégration de gestionnaire compatible qui expose les en-têtes CONNECT. ProxyMesh en maintient une à cette fin ; vérifiez la version de Scrapy prise en charge et le gestionnaire de téléchargement. L'analyse par l'araignée ne peut pas révéler des en-têtes que le transport n'a jamais fournis.

Associez les métadonnées à leur connexion. Réutiliser un tunnel ne crée pas une autre réponse CONNECT pour chaque page. Pour une adresse source indépendante observée par la destination, inspectez la connexion entrante de cette destination au lieu de traiter l'en-tête du fournisseur comme un détecteur d'IP universel.

Articles similaires