错误信息如下:

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

python做爬虫,对于有的网站,需要验证证书,比如:12306,https://inv-veri.chinatax.gov.cn/等网站

那么我参考这个作者的简书:http://www.jianshu.com/p/e42005d48929 解决了这个错误:

加上一个参数:verify=证书路径,或verify=False

#方法一

import requests

from bs4 import BeautifulSoup

url = 'https://inv-veri.chinatax.gov.cn/'

req = requests.get(url,verify=False)

req.encoding = 'utf-8'

soup = BeautifulSoup(req.text,'lxml')

print(soup)

错误消失了但是有提醒,不过没事,可以解析出源代码。然后我根据他的简书继续下载证书,但是不知道为什么,我下载的证书不管用,然后没辙,幸好之前做过12306这个网站。OK,第二种简单的方法来了,下载啥安全证书?不需要,不需要。直接上一段添加证书代码:

ssl._create_default_https_context = ssl._create_unverified_context#注意用了这个就不能用requests了,得用urllib2.Request

完整代码如下:

# 方法二(推荐):

import ssl

import urllib2

ssl._create_default_https_context = ssl._create_unverified_context

req = urllib2.Request('https://inv-veri.chinatax.gov.cn/')

data = urllib2.urlopen(req).read()

print(data)

总结:经过我的测试,推荐大家使用方法二。喜欢的话点个赞哦~

经过大半年之后我又回到了爬虫:对于咱们上面两个方法我又发现了一个好的SSL证书验证的方法:加参数:verify=False

完整代码如下:

#SSL证书验证

import requests

response = requests.get('https://www.12306.cn', verify=False)

print(response.status_code)

不过我们发现报了一个警告,它建议我们给它指定证书。我们可以通过设置忽略警告的方式来屏蔽这个警告:

import requests

from requests.packages import urllib3

urllib3.disable_warnings()

response = requests.get('https://www.12306.cn', verify=False)

print(response.status_code)

或者通过捕获警告到日志的方式忽略警告:

import logging

import requests

logging.captureWarnings(True)

response = requests.get('https://www.12306.cn', verify=False)

print(response.status_code)

如果我上面三种方法还不能解决你ssl的错误的话,请重新安装requests:

python2下载版本:

pip install requests==2.6.0

python3下载版本

pip install requests==2.7.0

再次运行成功。

示例:例如这个网址https://grwsyw.bjgjj.gov.cn/ish/,必须使用对的requests版本

import requests

req = requests.get('https://grwsyw.bjgjj.gov.cn/ish/',verify=False)

print(req.text)

参考链接:https://blog.csdn.net/liujinz72213/article/details/78866873

工信部python证书多少钱_python requests SSL证书问题相关推荐

  1. python urllib.request ssl失败_python requests SSL证书问题

    错误信息: requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_serve ...

  2. VeriSign SSL服务器证书——128位支持型SSL证书(VeriSign Secure Site)_VeriSign数字证书产品...

    VeriSign SSL服务器证书--128位支持型SSL证书(VeriSign Secure Site) • 全球最为知名的SSL证书品牌 • 40/56/128/256 位自适用加密 • 支持主流 ...

  3. ssl证书购买后多久生效?ssl证书有效期多长时间

    ssl证书购买后多久生效?网站要想实现https加密访问,则离不开ssl证书.SSL证书申请是需要通过CA机构审核之后才可以颁发的,颁发SSL证书之后,才能进行安装.安装SSL证书之后,立马就可以使用 ...

  4. 根证书的有效期与服务器SSL证书一样长吗?

    在了解根证书和服务器SSL证书有效期前得先知道他们是什么. 什么是根证书? 根证书是指CA机构颁发SSL证书的核心,是信任链的起始点.每个浏览器都有根证书库,有的浏览器是采用自主的根证书库,而一些浏览 ...

  5. ssl证书会过期吗?ssl证书过期了怎么解决

    大部分的网站当下都在进行ssl证书的部署,因为网站在部署ssl证书之后,能够通过ssl证书来保障网站的安全,因为ssl证书是根据ssl协议来进行的,但是网站在部署ssl证书之后,有些人在好奇,ssl证 ...

  6. comodo泛域名SSL证书与comodo多域名SSL证书

    Comodo SSL证书是全球占有率很高的数字证书品牌, 提供的SSL证书以高性价比著称,并且证书种类丰富多样,能够满足各类网站不同的安全需求. 目前Comodo证书根证书为Sectigo,同时EV证 ...

  7. python requests ssl 证书问题

    错误信息: requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_serve ...

  8. python绘制蚊香形_Python requests发送post请求的一些疑点

    前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法.一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要 ...

  9. php iis6 安装ssl证书,在IIS下部署SSL证书实现HTTPS

    HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为"不安全",对于站长来说,部署SS ...

最新文章

  1. 微软系统工具套件SysinternalsSuite各个工具功能说明
  2. Tree 1.5 For Net 2.0
  3. Nodejs简介以及Windows上安装Nodejs
  4. spring boot报错:Unable to start embedded Tomcat server 权限不够
  5. php fetchall 返回值为0_PHP实现延迟执行程序
  6. 诛仙服务器显示横线,诛仙手游聊天颜色字体代码发送带颜色的字
  7. recv原理、高阶版黏包解决方案、基于UDP的socket通信
  8. html5泵站,基于 HTML5 WebGL 的污水处理厂泵站自控系统
  9. 三年一个人使用虚幻引擎(UDK)开发的一个游戏心路
  10. caj阅读器Mac版下载
  11. 如何查看APP ID
  12. python超市管理系统流程图_python实现超市管理系统(后台管理)
  13. 剖析2015四大合并案:滴滴快的、58赶集、美团大众点评、携程去哪儿 1+12?
  14. ezuikit-js萤石云
  15. OpenCV图像旋转(cv::rotate)与镜像(cv::flip)
  16. 运城学院计算机课,主讲教师
  17. 控制系统分析与设计(二):比例积分控制器的传递函数
  18. docker使用dockerfile方式运行java程序
  19. 企业报表插件怎么用?
  20. vscode中jsx中没有html语法提示,不能自动补全的解决办法

热门文章

  1. 微信小程序---页面刷新的几种方法
  2. 面向Android的开发基于Tensorflow Lite框架深度学习的应用(一)
  3. JVM面试题附带答案
  4. arduino tft 方向_arduino 控制TFT液晶显示屏,在屏幕上画了四个按键,如何检测是否被按下和释放呢?...
  5. python常用接口调用
  6. 《Linux 驱动:输入子系统》
  7. 用Python输出三角形图案
  8. 智能手机也能打卫星电话
  9. python图像轮廓识别_Python+OpenCV图像处理(十六)—— 轮廓发现
  10. Javascript json字符串和数组互转 json格式化html