2012-04-18 40 views
1

使用的urllib2,并试图让HTTPS页面失败,它不断与的urllib2以https网站

Invalid url, unable to resolve 

失败的URL是 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 - 失败。

任何线索?

回答

6

您应该使用HTTPSHandler而不是HttpHandler的

+0

有趣的,我只是假设。我想知道这是否意味着我也必须做HTTPSDefaultErrorHandler – Wizzard 2012-04-18 04:05:26

+1

安装HTTPSDefaultErrorHandler不存在 – 2012-04-18 07:39:04

2

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

你的代码,使用requests是:

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

这看起来不错,我已经写好了我的项目的所有代码,但将在未来使用。 – Wizzard 2012-04-18 08:06:00