python - ssl,urllib3,请求.exceptions.SSLError : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c:548)

标签 python ssl youtube-api ssl-certificate

我正在开发一个通过 YouTube APIv3 从 YouTube 收集信息的应用程序。我正在使用 yapi来自github的包。我在 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:\Python33\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\Python33\lib\site-packages\urllib3\connectionpool.py", line 345, in _make_request
    self._validate_conn(conn)
  File "C:\Python33\lib\site-packages\urllib3\connectionpool.py", line 844, in _validate_conn
    conn.connect()
  File "C:\Python33\lib\site-packages\urllib3\connection.py", line 326, in connect
    ssl_context=context)
  File "C:\Python33\lib\site-packages\urllib3\util\ssl_.py", line 325, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Python33\lib\ssl.py", line 246, in wrap_socket
    _context=self)
  File "C:\Python33\lib\ssl.py", line 350, in __init__
    raise x
  File "C:\Python33\lib\ssl.py", line 346, in __init__
    self.do_handshake()
  File "C:\Python33\lib\ssl.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:\Python33\lib\site-packages\requests\adapters.py", line 440, in send
    timeout=timeout
  File "C:\Python33\lib\site-packages\urllib3\connectionpool.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:\Python33\lib\site-packages\yapi.py", line 36, in general_search
    objects = manager.api_request(api_url, params)
  File "C:\Python33\lib\site-packages\manager.py", line 47, in api_request
    con = requests.get(req_url)
  File "C:\Python33\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python33\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python33\lib\site-packages\requests\sessions.py", line 502, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python33\lib\site-packages\requests\sessions.py", line 612, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python33\lib\site-packages\requests\adapters.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 及更高版本的函数。

最佳答案

尝试更改 manager.py第 47 行来自

con = requests.get(req_url)

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

SSL 证书可能有问题。

可能与 issue 有关我正在使用 requests 库。

关于python - ssl,urllib3,请求.exceptions.SSLError : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c:548),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45374015/

相关文章:

java - 关键字 'statistics' 附近的语法不正确。 Spring.IO

python - 在其他网站上使用pafy

ssl - 将签名证书上传到 Amazon EC2?

youtube - 如何计算YouTube channel 的观看总数?

python - Amazon lambda dynamodb update_item() 只接受关键字参数

Python。在循环函数内部调用的函数仅运行一次,然后函数的其余部分重复

python - 为什么python字典的元素没有按顺序打印

python - Scikit Learn SGDClassifier Partial_Fit 错误

r - SSL 验证导致 RCurl 和 httr 中断 - 在一个应该合法的网站上

cakephp - 共享 SSL + cakePHP,路径问题