使用requests时出现SSLError
我尝试在requests的快速入门中执行第一个命令:
>>> import requests
>>> r = requests.get('https://github.com/timeline.json')
但是我收到了以下错误信息:
Traceback (most recent call last):
File "./main.py", line 16, in <module>
requests.get('https://github.com/timeline.json')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
我对SSL证书完全不懂,但我觉得这可能跟Python在错误的地方查找有关。我下载了Python 2.7,并把它设为默认的Python(我用的是Mac OSX 10.6(雪豹),它自带Python 2.6)。在我修复路径并创建符号链接之前,我的Mac在查找Python相关的东西时遇到了很多麻烦,但我在想,是否还有其他跟升级有关的事情导致了这个SSL错误?或者这可能根本跟那个没关系。
我尝试搜索类似的问题,并阅读了一些人的建议,建议在requests.get()
中添加参数verify=False
,但我不想这么做,因为我觉得这只是绕过了真正的问题。谢谢你们帮助一个完全的新手。
1 个回答
0
你可以试试这个方法。
确认一下证书的路径:
>>> requests.get('https://whatever.com', verify='/path/to/certfile')
或者
>>> requests.get('https://whatever.com', cert=('/path/server.crt', '/path/key'))