请求+代理服务器,IP地址不会改变

时间:2017-07-04 13:47:27

标签: python proxy python-requests ip-address

我正在使用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,我得到这个: 你' {" ip":"我当前的IP(不是之前插入的代理服务器IP)"," about":" / about",......}'

您能否解释一下我为什么要获取计算机的IP地址而不是代理服务器的IP地址? 我在某个地方出错了还是我希望在这里发生错误的事情? 我是新来的请求+代理服务器,所以我想确保我理解这一点。

UPDATE 我的代码中也有这个:

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

由于 维托里奥

3 个答案:

答案 0 :(得分:0)

而不是这样做传递用户代理

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

答案 1 :(得分:0)

网站( http://jsonip.com )广播“升级 - 不安全请求”'头。这意味着您的请求会被重定向到 https ://jsonip.com,因此requests没有使用代理,因为您的请求中没有https代理proxies dict。

因此,您只需在proxies中添加https代理,例如:

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

答案 2 :(得分:0)

您需要更改您的获取请求才能使用代理。

类似这样的内容:req = s.get('http://jsonip.com', proxies=proxies)