5

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

问题是通过代理连接。我已经输入了我们的代理信息,但没有得到任何快乐。我收到 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

4 回答 4

2

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

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
于 2013-08-19T13:19:06.330 回答
1

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

于 2013-07-15T00:13:13.283 回答
0

您可以使用HTTP_PROXYin python 来连接到您的代理服务器。您可以在提供的此链接上找到更多详细信息。

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

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

于 2013-05-23T01:09:44.853 回答
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

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

于 2020-10-11T20:53:08.847 回答