当我使用 python urllib 从 url 检索文件时发生错误套接字错误



我尝试从NASA下载.tiff文件。在浏览器中执行此操作时,效果很好。使用以下python代码尝试时

import urllib
f = urllib.FancyURLopener()
url = "https://neo.sci.gsfc.nasa.gov/servlet/RenderData?si=1696692&cs=gs&format=TIFF&width=3600&height=1800"
f.retrieve(url, "test.TIFF")

我收到错误

IOError: [错误套接字错误] [SSL: UNKNOWN_PROTOCOL] 未知协议 (_ssl.c:590(

我在这里发现了一个类似的问题,通过创建一个新的SSLContext来解决错误。但是,我无法弄清楚如何按照我的情况保存下载的文件。

似乎有效:

from urllib.request import urlretrieve
url = 'https://neo.sci.gsfc.nasa.gov/servlet/RenderData?si=1696692&cs=gs&format=TIFF&width=3600&height=1800'
urlretrieve(url, 'result.TIFF')

不确定这是否适用于 Python 2。稍后会更新我的答案。

我使用 urllib2 找到了适合我的 python 2 解决方案:

import urllib2
url = "https://neo.sci.gsfc.nasa.gov/servlet/RenderData?si=1696692&cs=gs&format=TIFF&width=3600&height=1800"
f = urllib2.urlopen(url)
data = f.read()
with open("img.TIFF", "wb") as imgfile:
    imgfile.write(data)

相关内容

最新更新