2016-12-28 72 views
0

正如我在标题中提到的,我想读取网站的源代码。一切工作正常,但有时我得到一个错误。Python:使用urllib2获取网站源代码(ssl问题)

错误

urllib2.URLError: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590) 

我知道,有一个与SSL证书有问题,但我不知道如何解决它。我已经花了几个小时来找到解决问题的方法,但直到现在我还没有成功(我已经在ssl模块中尝试了几件事情)。

我做的方式:

import urllib2 
urllib2.openurl("https://www.website.com") 

如果没有办法做这种东西与urllib2,是有不同的模块,你建议?

+0

PS:我正在使用python2.7.10 – ghnome

+0

握手失败可能是缺少SNI或旧版OpenSSL版本,它不支持较新的协议或密码。你可能会尝试请求库,这取决于问题的未知原因可能会更好或失败。如果这无助于提供有关平台,OpenSSL版本('ssl.OPENSSL_VERSION')和目标URL的信息,以便其他人可以重现问题并为您提供帮助。 –

+0

'OpenSSL 0.9.8zh 2016年1月14日' – ghnome

回答

0

这可能是由于服务器请求的某些ssl选项以及库不支持的urllib2

我建议您安装并使用request库,因为它提供了更多的安全软件包和选项。

+0

我已经用请求试过了!但没有成功! – ghnome

+0

使用'request'时会得到什么样的错误? – Aliweb

+0

这:requests.exceptions.SSLError:[SSL:SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3警报握手失败(_ssl.c:590) – ghnome

相关问题