与Python的代理连接

时间:2013-05-23 00:51:58

标签: python proxy urllib3

我一直在尝试从python连接到URL。我试过了: urllib2,urlib3和请求。在所有情况下,我都遇到了同样的问题。一旦我得到答案,我想他们三个都可以正常工作。

问题是通过代理连接。我已输入我们的代理信息,但我没有得到任何快乐。我收到407代码和错误消息,如: HTTP错误407:需要代理身份验证(Forefront TMG需要授权才能完成请求。拒绝访问Web代理筛选器。)

但是,我可以使用另一个通过代理的其他应用程序连接,例如git。当我运行git config --get htpp.proxy时,它返回与我在Python中输入的相同值和格式

http://username:password@proxy:8080

请求中的代码示例是

import requests
proxy = {"http": "http://username:password@proxy:8080"}
url = 'http://example.org'
r = requests.get(url,  proxies=proxy)
print r.status_code

感谢您的时间

4 个答案:

答案 0 :(得分:3)

在请求模块中,执行代理身份验证,如下所示:

import requests
proxies = {'http':'http://x.x.x.x', 'https':'https://x.x.x.x'}
auth = requests.auth.HTTPProxyAuth('username', 'password')
r = requests.get('http://www.example.com', proxies = proxies, auth = auth)
print r.status_code, r.reason

答案 1 :(得分:1)

我已经通过安装CNTLM解决了我的问题。 一旦设置和配置,我设置HTTP_PROXY等。

答案 2 :(得分:0)

您可以使用python中的HTTP_PROXY连接到您的代理服务器。您可以在此链接中找到更多详细信息。

http://www.wkoorts.com/wkblog/2008/10/27/python-proxy-client-connections-requiring-authentication-using-urllib2-proxyhandler/

上面的链接显示了使用urllib2的示例。实际上我已经用了一段时间来同时连接两台服务器。希望这会对你有所帮助

答案 3 :(得分:0)

import requests
proxies = {'https':'https://username:password@1.4.1.2:8080'}
r = requests.get('http://www.example.com', proxies = proxies)
print r.status_code, r.reason

有效的解决方案!在我的服务器上测试过