当我使用 python urllib 从 url 检索文件时发生 Errno 套接字错误
Errno socket error occurs when I retrieve file from url with python urllib
我尝试从 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: [Errno socket error] [SSL: UNKNOWN_PROTOCOL] 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. 稍后会更新我的答案。
我找到了一个解决方案 python 2 使用 urllib2 对我有用:
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)
我尝试从 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: [Errno socket error] [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)
我发现了一个类似的问题
这似乎有效:
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. 稍后会更新我的答案。
我找到了一个解决方案 python 2 使用 urllib2 对我有用:
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)