Python网络爬虫报错“SSL: CERTIFICATE_VERIFY_FAILED”的解决方案
来源:互联网 发布:socket网络通信 编辑:程序博客网 时间:2024/05/01 20:41
import urllib.requestweburl = "https://www.douban.com/"webheader = { 'Accept': 'text/html, application/xhtml+xml, */*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko', 'DNT': '1', 'Connection': 'Keep-Alive', 'Host': 'www.douban.com' }req = urllib.request.Request(url=weburl,headers=webheader)webPage = urllib.request.urlopen(req)data = webPage.read().decode('utf-8')print(data)print(type(webPage))print(webPage.geturl())print(webPage.info())print(webPage.getcode())
如上代码,用爬虫爬取豆瓣,报错“SSL: CERTIFICATE_VERIFY_FAILED”,经过上网查找原因,原来是Python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书。而当目标网站使用的是自签名的证书时就会抛出此异常。
解决方案有如下两个:
1)使用ssl创建未经验证的上下文,在urlopen中传入上下文参数
import ssl
context = ssl._create_unverified_context()
webPage = urllib.request.urlopen(req,context=context)
2)全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
另外,如果用的是requests模块的get方法,里面有一个verify参数,将其设成False就可以了。
阅读全文
1 0
- Python网络爬虫报错“SSL: CERTIFICATE_VERIFY_FAILED”的解决方案
- python请求https报错[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
- Python报错: urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]
- pip安装报错[SSL:CERTIFICATE_VERIFY_FAILED]解决方法
- 【python】SSL: CERTIFICATE_VERIFY_FAILED
- python用requests请求百度接口报“SSL: CERTIFICATE_VERIFY_FAILED”
- python用requests请求,报SSL:CERTIFICATE_VERIFY_FAILED错误。
- 七牛python sdk 上传报SSL: CERTIFICATE_VERIFY_FAILED]
- Python访问https报错CERTIFICATE_VERIFY_FAILED
- python locust接口性能测试HTTPS网站报错:Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certi
- Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED
- Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法
- Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法
- Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED
- Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED
- 记录pip3安装报错:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) 。。。
- Ambari启用认证,发送restful请求报错[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)
- python爬虫学习记录之报错及解决方案
- 快速幂&&codeforce 678D
- Ambari部署HDP2.3
- Morley's Theorem UVA
- 周易六十四卦——泽水困卦
- 编译ROM时添加内置软件太多导致Image内存不足
- Python网络爬虫报错“SSL: CERTIFICATE_VERIFY_FAILED”的解决方案
- 链表各类操作详解
- java代码实现发送邮件
- 使用反射机制绕过泛型检查类型
- 记一年多以来的第一次面试
- Spring-AOP
- 模拟后端存储数据,实现表单的注册和登录
- nginx +lnmp 负载均衡及动静分离
- 剑指offer面试题63 二叉搜索树的第k个结点