使用 https 使用 python 包请求下载文件时出错

Error downloading a file using python package requests with https

我是 Python 的初学者,一直在努力使用包请求下载文件。我的代码适用于带有 http 的 url,但不适用于 https。代码如下:

import requests
url = 'https://firms.modaps.eosdis.nasa.gov/active_fire/shapes/zips/Central_America_24h.zip'

print "downloading with requests"
r = requests.get(url)
with open("Central_America_24h.zip", "wb") as code:
    code.write(r.content) 

我收到以下错误:

Warning (from warnings module):
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\packages\urllib3\util\ssl_.py", line 90
    InsecurePlatformWarning
InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

Traceback (most recent call last):
  File "C:\Users\lmixco\Downloads\descarga.py", line 8, in <module>
    r = requests.get(url)
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\api.py", line 68, in get
    return request('get', url, **kwargs)
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\sessions.py", line 594, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\sessions.py", line 196, in resolve_redirects
    **adapter_kwargs
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python27\ArcGIS10.1\lib\site-packages\requests\adapters.py", line 431, in send
    raise SSLError(e, request=request)
SSLError: [Errno 8] _ssl.c:503: EOF occurred in violation of protocol

我一直在寻找解决方案,但没有找到任何东西。任何帮助将不胜感激。提前致谢。

你需要安装一个包,使用这个

pip install requests[security]

对于 debain / ubuntu ,在安装上面的包之前安装这个

apt-get install python-dev libffi-dev libssl-dev