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

问题描述 投票:0回答:3

我使用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地址吗?我在某个地方出错了还是我希望在这里发生错误的事情?我是新的请求+代理服务器,所以我想确保我理解这一点。

更新我的代码中也有这个:

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

谢谢维托里奥

python proxy python-requests ip-address
3个回答
0
投票

该站点(http://jsonip.com)广播“Upgrade-Insecure-Requests”标题。这意味着您的请求被重定向到https://jsonip.com,因此requests不使用代理,因为您的proxies dict中没有https代理。

所以,你所要做的就是在proxies中添加一个https代理,例如:

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

0
投票

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

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


0
投票

你需要更改url get请求以使用代理。

像这样的东西:req = s.get('http://jsonip.com', proxies=proxies)

© www.soinside.com 2019 - 2024. All rights reserved.