1、urllib发送request时报错urllib.error.URLError
1.1 问题复现
使用urrllib发送request时报错urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
from urllib import request
response = request.urlopen("https://www.baidu.com/")
print(response)
1.2 问题原因
这是因为访问的网站是https://
,需要SSL认证,而直接用urllib
会导致本地验证失败(具体原因未查明),所以使用ssl._create_unverified_context
关闭认证
1.3 解决方案
在调用request前调用以下语句即可
from urllib import request
import ssl # 导入ssl
# 关闭认证
ssl._create_default_https_context = ssl._create_unverified_context
response = request.urlopen("https://www.baidu.com/")
print(response)