SSL ,urllib3,requests .exceptions.SSLError: [SSL: CERTIFICAT



我正在开发一个应用程序,通过YouTube APIv3从YouTube收集信息。我正在使用来自 github 的 yapi 包。我正在使用Python2.7,它工作得很好。

但是当我升级到Python 3.3时,它突然给了我一个证书错误。

输入

import yapi
Youtube = yapi.YoutubeAPI('API KEY')
Results = Youtube.general_search('keyword', max_results=10)
print(Results)

输出

Traceback (most recent call last):
File "C:Python33libsite-packagesurllib3connectionpool.py", line 600, in urlopen
chunked=chunked)
File "C:Python33libsite-packagesurllib3connectionpool.py", line 345, in _make_request
self._validate_conn(conn)
File "C:Python33libsite-packagesurllib3connectionpool.py", line 844, in _validate_conn
conn.connect()
File "C:Python33libsite-packagesurllib3connection.py", line 326, in connect
ssl_context=context)
File "C:Python33libsite-packagesurllib3utilssl_.py", line 325, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "C:Python33libssl.py", line 246, in wrap_socket
_context=self)
File "C:Python33libssl.py", line 350, in __init__
raise x
File "C:Python33libssl.py", line 346, in __init__
self.do_handshake()
File "C:Python33libssl.py", line 553, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:Python33libsite-packagesrequestsadapters.py", line 440, in send
timeout=timeout
File "C:Python33libsite-packagesurllib3connectionpool.py", line 630, in urlopen
raise SSLError(e)
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/a227855/PycharmProjects/Youtube/Search.py", line 3, in <module>
Results = Youtube.general_search('keyword', max_results=10)
File "C:Python33libsite-packagesyapi.py", line 36, in general_search
objects = manager.api_request(api_url, params)
File "C:Python33libsite-packagesmanager.py", line 47, in api_request
con = requests.get(req_url)
File "C:Python33libsite-packagesrequestsapi.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "C:Python33libsite-packagesrequestsapi.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:Python33libsite-packagesrequestssessions.py", line 502, in request
resp = self.send(prep, **send_kwargs)
File "C:Python33libsite-packagesrequestssessions.py", line 612, in send
r = adapter.send(request, **kwargs)
File "C:Python33libsite-packagesrequestsadapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)
Process finished with exit code 1

我不得不更改为 Python 3.4 以尝试支持我正在使用的其他仅支持 3 及以上的函数。

尝试将第 47 行的 manager.py 从

con = requests.get(req_url)

con = requests.get(req_url, verify=False)

SSL 证书可能存在问题。

可能与我使用requests库遇到的问题有关。

最新更新