urllib2与https网站失败

时间:2012-04-18 03:41:05

标签: python urllib2

使用urllib2并尝试获取https页面时,它会随着

而失败
Invalid url, unable to resolve

网址是 https://www.domainsbyproxy.com/default.aspx 但我在多个https网站上发生了这种情况。

我使用的是python 2.7,下面是我用来设置连接的代码

opener = urllib2.OpenerDirector()
opener.add_handler(urllib2.HTTPHandler())
opener.add_handler(urllib2.HTTPDefaultErrorHandler())
opener.addheaders = [('Accept-encoding', 'gzip')]
fetch_timeout = 12
response = opener.open(url, None, fetch_timeout)

我手动设置处理程序的原因是因为我不想处理重定向(工作正常)。以上适用于http请求,但是https - 失败。

任何线索?

2 个答案:

答案 0 :(得分:6)

您应该使用HTTPSHandler而不是HTTPHandler

答案 1 :(得分:2)

如果您不介意外部库,请考虑优秀的requests模块。它用urllib处理这些怪癖。

使用requests的代码是:

import requests
r = requests.get(url, headers={'Accept-encoding': 'gzip'}, timeout=12)