簡體   English   中英

請求+代理服務器,IP地址不變

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM