【报错:<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expi】

报错

说明,在网上有几种解决方案

方案1

ssl._create_default_https_context = ssl._create_unverified_context

方案二

发送请求时,指定urlopen参数

context = ssl._create_unverified_context()
html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html",context=context)

我的方案

在观看ssl库之后,我发现有一种更简单的方法
新建默认SSLContext对象,默认是不用进行ssl认证的

context=ssl.SSLContext()
html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html",context=context)

完整代码

import ssl
from urllib.request import urlopen
from bs4 import BeautifulSoup

context=ssl.SSLContext()
html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html",context=context)
bsObj = BeautifulSoup(html, "html.parser")
print(bsObj.h1)

你可能感兴趣的:(bug,python)