使用请求和Urlib2的Python代理身份验证

使用请求和Urlib2的Python代理身份验证,python,proxy,python-requests,Python,Proxy,Python Requests,有人知道为什么Urlib2版本返回网页,而Requests版本返回连接错误吗 [Errno 10060]连接尝试失败,因为连接方 一段时间后未正确响应,或建立 连接失败,因为连接的主机未能响应 Urllib2代码(工作): import urllib2 proxy = urllib2.ProxyHandler({'http': 'http://login:password@proxy1.com:80'}) opener = urllib2.build_opener(proxy) urllib2

有人知道为什么Urlib2版本返回网页,而Requests版本返回连接错误吗

[Errno 10060]连接尝试失败,因为连接方 一段时间后未正确响应,或建立 连接失败,因为连接的主机未能响应

Urllib2代码(工作):

import urllib2

proxy = urllib2.ProxyHandler({'http': 'http://login:password@proxy1.com:80'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
wPage = urllib2.urlopen('http://www.google.com/')
print wPage.read();
import requests

proxy = {"http": "http://login:password@proxy1.com:80"}
wPage = requests.get('http://www.google.com/', proxies=proxy)
print wPage.text
请求代码(不工作-错误号10060):

import urllib2

proxy = urllib2.ProxyHandler({'http': 'http://login:password@proxy1.com:80'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
wPage = urllib2.urlopen('http://www.google.com/')
print wPage.read();
import requests

proxy = {"http": "http://login:password@proxy1.com:80"}
wPage = requests.get('http://www.google.com/', proxies=proxy)
print wPage.text
请求版本返回intranet网页,但在internet网页上出现错误

我正在运行Python 2.7

*编辑*

根据m170897017的建议,我查找GET请求中的差异。唯一的区别在于连接和代理连接

Urllib2版本:

标题:连接:关闭

标头:代理连接:关闭

请求版本:

标题:连接:保持活动状态

标头:代理连接:保持活动状态

我通过修改标头强制请求版本关闭这两个连接

header = {
   "Connection": "close",
   "Proxy-Connection": "close"
}
两个请求的GET请求现在匹配,但是请求版本仍然不起作用。

尝试以下操作:

import urllib2

proxy = urllib2.ProxyHandler({'http': '1.1.1.1:9090'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://www.google.com/')
datum = response.read().decode("UTF-8")
response.close()
print datum

有点晚了。。。但为了将来参考,这一行: 代理={“http”:“”}

还应该为https提供第二个键/值对,即使不打算使用它

还有一个很棒的请求模块,名为proxy requests,其功能非常类似:

pip3 install proxy-requests

嗅探不同程序发送的数据包,看看HTTP GET是否不同。嗨,戴夫,谢谢你的回复,我很感激,但是请求代码在互联网页面上不起作用-我可能应该说得更清楚。