2017-07-04 2 views
0

Ich verwende die Python-Shell, um Anfragen zusammen mit Proxy-Servern zu testen. Nach Lesen der Dokumentation (http://docs.python-requests.org/en/master/user/advanced/) und ein paar Fäden Stackoverflow Ich tue das folgende:Anfragen + Proxy-Server, IP-Adresse wird nicht geändert

import requests 

s = requests.session() 
proxies = {'http': 'http://90.178.216.202:3128'} 
s.proxies.update(proxies) 
req = s.get('http://jsonip.com') 

Danach, wenn ich req.text drucken, bekomme ich diese: u '{ ‚ip‘: "Meine aktuelle IP (nicht die Proxy-Server-IP, die ich zuvor eingefügt habe) "," about ":"/about ", ......}

Können Sie bitte erklären, warum ich die IP-Adresse meines Computers bekomme und nicht die IP-Adresse des Proxyservers? Bin ich irgendwo falsch gelaufen oder erwarte ich, dass hier das Falsche passiert? Ich bin neu auf Anfragen + Proxy-Server, also möchte ich sicherstellen, dass ich das verstehe.

UPDATE ich dies auch in meinem Code haben:

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'} 
s.headers.update(headers) 

Dank Vittorio

Antwort

0

Die Website (http://jsonip.com) sendet einen 'Upgrade-Insecure-Requests'-Header. Das bedeutet, dass Ihre Anfrage an https: //jsonip.com umgeleitet wird, so dass requests keinen Proxy verwendet, weil Sie in Ihrem proxies dict keinen https-Proxy haben.

Also, alles, was Sie tun müssen, ist einen HTTPS-Proxy in proxies hinzufügen, zum Beispiel:

proxies = {'http':'http://90.178.216.202:3128', 'https':'https://90.178.216.202:3128'} 
+0

cool, das hat reibungslos geklappt! Vielen Dank! –

0

Statt diesem Pass User-Agent zu tun

requests.post (url = 'abc.com ', header = {' Benutzer-Agent ':' Mozila 5.0 '})

+0

ich meine Frage aktualisiert und enthält nun haben, ich habe nicht erwähnt, dass vor, wie ich dachte, es war nicht wichtig –

Verwandte Themen