使用python urllib时出现[SSL: CERTIFICATE_VERIFY_FAILED]报错的解决方案

Posted zyk01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python urllib时出现[SSL: CERTIFICATE_VERIFY_FAILED]报错的解决方案相关的知识,希望对你有一定的参考价值。

"首先,这个报错是告诉你,你的证书有问题.

其次,出现这个问题的原因,在于Python本身.

问题原因

Python升级到2.7.9以后,引入了一个新特性.
当使用urllib打开https的链接时,会检验一次ssl证书.
而当目标网站使用的是自签名证书时,就会抛出urllib2.URLError的错误.
·
所以在爬取https协议的网站或伪装请求头都会导致这个错误.
***

解决方案

方案一 全局取消证书验证

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

方案二 创建未验证的上下文,在url中传入上下文参数

import ssl
# 创建未验证的上下文
context = ssl._create_unverified_context()
# 在url中传入上下文参数
response = urllib.request.urlopen(url, context=context)


"

以上是关于使用python urllib时出现[SSL: CERTIFICATE_VERIFY_FAILED]报错的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用 ESRI arcgis python api 时出现 SSL 错误

将 MySQL 连接器与 Python 一起使用时出现 SSL 连接错误

Python urllib.error certificate verify failed(_ssl.c:749)

通过python进行请求时出现SSL证书错误

证书验证失败:无法获取本地颁发者证书

cURL 错误 60:尝试使用 symfony 时出现 ssl 认证问题