Python urllib2给出"网络无法访问错误"如果URL是https

时间:2012-09-17 13:22:22

标签: python http ssl https urllib2

我正在尝试使用urllib2库获取一些网址。

a = urllib2.urlopen("http://www.google.com")
ret = a.read()

上面的代码工作正常,并给出了预期的结果。但是当我创建网址https时,它会出现“网络无法访问”错误

a = urllib2.urlopen("https://www.google.com")
urllib2.URLError: <urlopen error [Errno 101] Network is unreachable>

ssl有什么问题吗?我的python版本是Python2.6.5。我也是学术代理服务器的幕后推手。我有bash文件中的设置。无论如何,因为http是开放代理不应该是这里的问题。

2 个答案:

答案 0 :(得分:1)

通常,像这样的情况下的问题是您拥有过期或不受信任的SSL证书的代理。在涉及到SSL时,urllib比大多数浏览器都更加繁琐,这就是为什么你可能会遇到这个错误。

答案 1 :(得分:1)

http url没有给出错误,因为已经设置了http_proxy变量。通过设置https_proxy,上述错误消失。

export http_proxy = "http://{proxy-address}"

为https_proxy

设置相同内容
export https_proxy = "http://{proxy-address}"