600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>

python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>

时间:2024-06-10 10:06:30

相关推荐

python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>

完整报错是:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:xxx)>

解决方法

在使用urllib.request.Request(url)前,添加代码:

import sslssl._create_default_https_context = ssl._create_unverified_context

问题解析

这是因为访问的网站是https://,需要SSL认证,而直接用urllib会导致本地验证失败(具体原因未查明),所以使用ssl._create_unverified_context关闭认证

报错重现

在执行到request = urllib.request.Request(url, data)时报错,取消掉这行向上两行的注释,即可解决问题

import jsonimport urllibdef baidu_search():url = "/s?"data = {"wd": "啊哈"}data = json.dumps(data).encode('GBK')# import ssl# ssl._create_default_https_context = ssl._create_unverified_context # 如果不添加这两行,下一行报错request = urllib.request.Request(url, data)response = urllib.request.urlopen(request)content = response.read()print(str(content))if __name__ == '__main__':baidu_search()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。