执行如下代码会报错:
from urllib.request import urlopen from urllib.request import Request url = 'http://www.baidu.com' headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' } req = Request(url, headers = headers) resp = urlopen(req)
报错信息:
Traceback (most recent call last): File "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1346, in do_open h.request(req.get_method(), req.selector, req.data, headers ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
解决方法,添加代码:
import ssl ssl._create_default_https_context = ssl._create_unverified_context
导致问题的原因是访问的网站是https://
,需要SSL认证,而直接用urllib
会导致本地验证失败(具体原因未查明),所以使用ssl._create_unverified_context
关闭认证
宠物免费领养小程序,欢迎来踩