python中的许多操作都需要通过https访问.这包括pip安装,或仅使用http.client.HTTPSConnection,或内部使用这些内容的任何模块或应用程序.
如果python是从官方的python pkg安装程序安装的,从https://python.org下载,那么它使用的是openssl的内部版本,并且不包含根证书.任何使用SSL连接的内容都会导致此错误:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
Run Code Online (Sandbox Code Playgroud)
如何安装根证书以使上述错误消失?
我正在尝试使用来自Github(https://github.com/gto76/betbrain-scraper)的betbrain.py,它具有以下代码:
#!/usr/bin/python3
#
# Usage: betbrain.py [URL or FILE] [OUTPUT-FILE]
# Scrapes odds from passed betbrain page and writes them to
# stdout, or file if specified.
import os
import sys
import urllib.request
from bs4 import BeautifulSoup
from http.cookiejar import CookieJar
import parser_betbrain
import printer
DEFAULT_URL = 'https://www.betbrain.com/football/england/premier-league/#!/matches/'
# If no arguments are present, it parses the default page.
# Argument can be an URL or a local file.
def main():
html = getHtml(sys.argv)
soup = BeautifulSoup(html, "html.parser") …Run Code Online (Sandbox Code Playgroud) 我在 Debian 8 上的 python 3.7.5 上进行了手动安装,当我运行脚本时出现此错误:
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>
Run Code Online (Sandbox Code Playgroud)
我在 stackoverflow 中看到了几个关于 MacOS 的问题,就我而言,这个错误出现在 Linux 中。