我正在尝试使用urllib,urllib2或请求以从网站获取特定数据。我使用Python2.7。 我一直收到错误:
requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)
这是我的请求代码:
import requests
r = requests.get("https://metoc.ndbc.noaa.gov/jtwc#_48_INSTANCE_0SiamlX2KcM6_=https%3A%2F%2Fmetoc.ndbc.noaa.gov%2FProductFeeds-portlet%2Fimg%2Fjtwc%2Fhtml%2Fcoop.jsp%3F")
我尝试了一切,但没有任何作用:
我尝试将验证参数设置为false。我犯了同样的错误。 我尝试使用适配器(如其他答案中所述)以使用其他SSL版本。我仍然得到同样的错误。
任何想法可以解决这个问题? 可以是主机已锁定访问权限,并且无法获取此URL的来源吗?
答案 0 :(得分:2)
所有这些都是使用Yosemite或ElCapitan的mac ...
这些版本仍然附带OpenSSL 0.9.8所以我的猜测是你的python链接到这个版本的OpenSSL(python不使用OS X中的本机TLS堆栈)。但由于服务器仅支持ECDHE密码,OpenSSL 0.9.8不支持这些密码,因此握手将失败。有关详细信息,请参阅report from SSLLabs。