[英]Requests + Proxy Servers, IP address won't change
我正在使用python shell與代理服務器一起測試請求。 閱讀文檔( http://docs.python-requests.org/en/master/user/advanced/ )和一些stackoverflow線程后,我正在執行以下操作:
import requests
s = requests.session()
proxies = {'http': 'http://90.178.216.202:3128'}
s.proxies.update(proxies)
req = s.get('http://jsonip.com')
此后,如果我打印req.text,則會得到以下信息:u'{“ ip”:“我的當前IP(不是我之前插入的代理服務器IP)”,“ about”:“ / about”,... ...}”
您能解釋一下為什么我要獲取計算機的IP地址而不是代理服務器的IP地址嗎? 我在某個地方出錯了嗎?還是期望在這里發生錯誤的事情? 我是請求+代理服務器的新手,所以我想確保自己了解這一點。
更新我的代碼中也有這個:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'}
s.headers.update(headers)
謝謝維托里奧
而不是通過用戶代理
requests.post(url ='abc.com',header = {'user-agent':'Mozila 5.0'})
該網站( http://jsonip.com )廣播“ Upgrade-Insecure-Requests”標頭。 這意味着您的請求將重定向到https://jsonip.com ,因此requests
不使用代理,因為proxies
字典中沒有https代理。
因此,您要做的就是在proxies
添加一個https代理,例如:
proxies = {'http':'http://90.178.216.202:3128', 'https':'https://90.178.216.202:3128'}
您需要更改您的請求才能使用代理。
像這樣: req = s.get('http://jsonip.com', proxies=proxies)
: req = s.get('http://jsonip.com', proxies=proxies)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.