使用urllib或请求从URL获取数据

时间:2016-07-06 17:17:36

标签: python python-requests urllib

我正在尝试使用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的来源吗?

1 个答案:

答案 0 :(得分:2)

  

所有这些都是使用Yosemite或ElCapitan的mac ...

这些版本仍然附带OpenSSL 0.9.8所以我的猜测是你的python链接到这个版本的OpenSSL(python不使用OS X中的本机TLS堆栈)。但由于服务器仅支持ECDHE密码,OpenSSL 0.9.8不支持这些密码,因此握手将失败。有关详细信息,请参阅report from SSLLabs