De ce antetul de ieșire al ProxyMesh poate lipsi în Scrapy
ProxyMesh poate trimite metadate de rutare pe CONNECT înainte ca Scrapy să primească răspunsul criptat al site-ului. Examinați etapa de răspuns care le poartă de fapt.
Absența X-ProxyMesh-IP într-un callback HTTPS din Scrapy nu dovedește rutare directă. La HTTPS tunelat, ProxyMesh pune antetele de rutare pe răspunsul CONNECT; răspunsul ulterior al site-ului este în interiorul TLS și nu include automat acele metadate anterioare.
Acolo unde antetul este expus într-un callback, citiți-l condiționat:
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'))
Aceasta este ieșirea raportată de furnizor pentru schimbul respectiv, nu numele de gazdă de intrare configurat.
Dacă sunt necesare metadatele tunelului, folosiți o integrare de handler compatibilă care expune antetele CONNECT. ProxyMesh întreține una exact în acest scop; verificați versiunea Scrapy acceptată și handlerul de descărcare. Parsarea de către păianjen nu poate dezvălui antete pe care transportul nu le-a furnizat niciodată.
Asociați metadatele cu conexiunea lor. Reutilizarea unui tunel nu creează un alt răspuns CONNECT pentru fiecare pagină. Pentru o adresă de sursă independentă observată de destinație, inspectați conexiunea de intrare a acelei destinații în loc să tratați antetul furnizorului ca un detector universal de IP.