python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证
1 https和SSL之间是什么关系
https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https。
现在随处可见 https 开头的网站,requests可以为HTTPS请求验证SSL证书,就像web浏览器一样,如果网站的SSL证书是经过CA认证的,则能够正常访问,如:https://www.baidu.com/等。
如果SSL证书验证不通过,或者操作系统不信任服务器的安全证书,比如浏览器在访问12306网站如:https://www.12306.cn/mormhweb/的时候,会警告用户证书不受信任。(12306 网站证书是自己做的,没有通过CA认证)
扩展阅读:
电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。例如北京的数字认证中心:http://www.bjca.org.cn/
下图火狐浏览器
下图谷歌浏览器
2 关于CA认证(数字证书认证中心)
CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的受信任的第三方机构,如
北京数字认证股份有限公司:http://www.bjca.org.cn/
上海市数字证书认证中心有限公司:http://www.sheca.com/
等...
CA的作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改,以及对证书和密钥进行管理。
现实生活中可以用身份证来证明身份, 那么在网络世界里,数字证书就是身份证。和现实生活不同的是,并不是每个上网的用户都有数字证书的,往往只有当一个人需要证明自己的身份的时候才需要用到数字证书。
普通用户一般是不需要,因为网站并不关心是谁访问了网站,现在的网站只关心流量。但是反过来,网站就需要证明自己的身份了。
比如说现在钓鱼网站很多的,比如你想访问的是www.baidu.com,但其实你访问的是www.daibu.com”,所以在提交自己的隐私信息之前需要验证一下网站的身份,要求网站出示数字证书。
一般正常的网站都会主动出示自己的数字证书,来确保客户端和网站服务器之间的通信数据是加密安全的。
3 案例
3.1 访问SSL证书正常网站import requests
# response = requests.get("https://www.baidu.com/", verify=True)
# 也可以省略不写#
response = requests.get("https://www.baidu.com/")
print(response.content.decode("utf-8"))
3.2 代码访问带有非SSL认证的网站
来测试一下:
SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)
如果SSL证书验证不通过,或者不信任服务器的安全证书,则会报出SSLError,据说12306证书是自己做的:
3.3跳过 12306 的证书验证
Requests也可以为HTTPS请求验证SSL证书,要想检查某个主机的SSL证书,你可以使用verify参数,把verify设置为False就可以正常请求了。忽略验证证书。
importrequestsresponse = requests.get("https://www.12306.cn/mormhweb/",verify =False)print(response.content.decode("utf-8"))
运行效果:
本博客源码Github地址:
请随手给个star,谢谢!
python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证相关推荐
- python爬虫工程师工作内容_爬虫岗位职责
岗位职责: *针对复杂的网站架构主动获取相关数据信息: *负责数据获取.清洗和分析工作. 任职要求: *计算机科学.应用数学.统计学.物理学.天文学.商业分析.信息系统.数据科学或相关专业本科或以上学 ...
- python移动文件中某个内容_如何在Python中移动文件
如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...
- python爬取付费隐藏内容_如何用python 爬取网页中隐藏的div内容?
图片所在的html元素id叫 viewimg ,这个元素是由 view.js 当中的 loadview 函数创建的.该函数吧serverurl跟photosrc这个array里头的元素拼接,并把他设置 ...
- python中yaml模块的使用_详解Python yaml模块
一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...
- python怎样打开加密的文件_如何用Python 加密文件
生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...
- python跳过ssl验证_Python SSL证书验证问题解决方案
这篇文章主要介绍了Python SSL证书验证问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.SSL问题 1.在你不启用fiddle ...
- python 指定证书验证_Python SSL证书验证问题解决方案
Python SSL证书验证问题解决方案 这篇文章主要介绍了Python SSL证书验证问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ...
- 阿里云服务器域名http升级为https访问,SSL证书下载安装全流程
阿里云服务器域名http升级为https访问,SSL证书下载安装全流程 目录 阿里云服务器域名http升级为https访问,SSL证书下载安装全流程 1.背景 2.阿里云下载安装SSL证书流程 2.1 ...
- Python3处理HTTPS请求 SSL证书验证
Python3处理HTTPS请求 SSL证书验证 金融类的公司网站一般都是https 开头的网站,urllib.request可以为 HTTPS 请求验证SSL证书,就像web浏览器一样,如果网站的S ...
最新文章
- MyEclipse搭建java Web项目开发环境
- 网页计算器源php代码,计算器网页版源代码
- npm的一些常用命令(在国内,建议使用cnpm,在淘宝镜像里面下载就行)
- OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
- SQL SERVER 子查询的用法
- 山东青岛职称计算机报名时间2015,青岛市2015年第二次职称计算机考试时间
- SCOM数据库整理索引计划出错
- 一张纸厚度是多少毫米_一张纸的威力有多大?纸折103次捅破宇宙,理论荒诞却无法反驳...
- .net数据库连接池配置技巧(默认值)
- unity mysql增删改查,XML的使用,增删改查(Unity中的)
- PowerDesigner 常用配置修改
- Java语言程序设计(沈泽刚主编)第3版 第1~3章编程练习答案
- linux外设驱动实现专栏:各虚拟外设驱动代码实现集合
- ps人物换脸移花接木
- thinkphp mysql order_ThinkPHP中order()使用方法详解
- 直播源代码中关于手机直播平台开发的登陆注册介绍
- PMSM学习笔记1——永磁同步电机的工作原理与数学模型
- int[]是什么类型?
- stream 计算一个List对象中某个字段总和
- 多任务学习MTL-MMOE
热门文章
- async spring 默认线程池_Spring定时任务高级使用篇
- Characterizing stochastic time series with ordinal networks
- 深掘工业互联网大数据五大维度
- php项目打不开DNS,电脑无法打开网页显示错误代码dns_probe_possible怎么解决?
- android 自定义 build.gradle,Gradle for Android 第二篇( Build.gradle入门 )
- python 加干扰线 图片生成_用Python一键生成炫酷九宫格图片,火了朋友圈
- 标准模块 threading
- GO语言学习之路14
- IntelliJ IDEA 2018.2支持Java 11、MacBook Touch Bar等新特性
- linux令普通用户拥有root权限