【使用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)



"

原文地址:https://www.cnblogs.com/zyk01/p/11376423.html

时间: 2024-10-08 17:12:00

【使用python urllib时出现[SSL: CERTIFICATE_VERIFY_FAILED]报错的解决方案】的相关文章

配置SSL证书之后,Bitnami Redmine创建问题时保存报错问题解决方案

问题:系统环境在安装了ssl证书之后,页面链接会用于加密HTTP协议,也就是HTTPS.那么在使用Bitnami Redmine创建问题时保存就会报错,当把URL中的"http"改成"https"之后,又能正常访问,但是很麻烦,有没有什么办法可以使得我不要每次都去修改http就能实现自动正常跳转的方法吗? 解决方案:这个问题是因为安装了SSL证书导致的,https请求会跳转成http请求,所以需要配置一下apache的配置文件即可. 步骤: 1.打开Bitnami

sublime text 2编译Python时打印中文报错的解决方案

当用sublime text 2 编译 python 文件时,若 print 打印出的中文时,控制台会报错: [Decode error - output not utf-8] 解决方案如下: 打开 sublime text 2 首选项 -> 浏览插件,进入 Python 文件夹,并找到 Python.sublime-build 文件. 打开如下: { "cmd": ["python", "-u", "$file"],

Python“Non-ASCII character 'xe5' in file”报错问题(转)

今天在编译一个Python程序的时候,一直出现"Non-ASCII character 'xe5' in file"报错问题 1 SyntaxError: Non-ASCII character '\xe5' in file kNN.py on line 24, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 出现问题的原因: Python默认是以ASCII作为编码方式的,如果

python里面出现中文的时候报错 'ascii' codec can't encode characters in position

编码问题,在头部添加 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) http://www.xuebuyuan.com/2226637.html python里面出现中文的时候报错 'ascii' codec can't encode characters in position

表空间正在热备份时关闭实例重启报错的重现和解决

最近一个客户的库在OPEN时报错需要恢复,发现原因为当时一个表空间正在热备份-->ALTER TABLESPACE TEST1 BEGIN BACKUP;  然后实例异常关闭(可能为ABORT或KILL SMON等进程,这里据说为存储直接关闭导致),然后重启时遇到此错误. 在ORACLE 10.2.0.1及11.2.0.4版本中重现了此错误,在这两个版本中同样的情况但是报错信息不太一样,具体情况如下: 10.2.0.1.0 版本表空间正在热备份时关闭实例重启报错的重现和解决: SQL> sel

python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

resion 编译时,遇到java报错问题

checking if/usr/lib/jvm/java-1.7.0/bin/java -d64 is Java 1.6... no configure: error: Java1.6 required. /usr/lib/jvm/java-1.7.0/bin/java -d64 returned: java version"1.7.0_55" OpenJDK RuntimeEnvironment (rhel-2.4.7.1.el6_5-x86_64 u55-b13) OpenJDK

node启动时, listen EADDRINUSE 报错;

1.启动时, listen  EADDRINUSE 报错: 查看是因为 端口被占用了,换了端口 还是不行:      查看了 被占用的端口,端口没有为:4000: 突然想到,每次启动node服务后,都没有关闭: 于是,查看任务进程,把node.js进程关闭后,重新启动 node环境即可!

使用maven多模块来构建系统时,spring初始化报错的问题

最近在实验maven结构的maven工程时,碰到一个问题,springbean总是初始化失败: Related cause: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userMapper' defined in file [D:\workspace\mavenweb\mavenweb-webapp\src\main\webapp\WEB-INF