urllib2在使用https网站时失败

2024-04-26 14:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

使用urllib2并尝试获取一个https页面时,它总是失败

Invalid url, unable to resolve

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

我使用的是Python2.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失败了。

有线索吗?


Tags: tohttpsaddurlwwwtimeout页面fetch
2条回答

您应该使用HTTPSHandler而不是HTTPHandler

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

使用^{}的代码是:

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

相关问题 更多 >