我一直在尝试从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
感谢您的时间
答案 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
连接到您的代理服务器。您可以在此链接中找到更多详细信息。
上面的链接显示了使用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
有效的解决方案!在我的服务器上测试过