我正在使用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)
由于 维托里奥
答案 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)