python爬虫中的https请求证书问题,原理及处理

image
理解https

https是HTTP+SSL的简称,是在HTTP传输方式的基础上将之前的明文进行了加密传输,在传输之前就会确定信息加密方式和秘钥,在传输中即使被捕获或者伪造,那么也能保证信息不被泄露。

而爬虫本质是伪装成一个浏览器,发送请求给服务器,参与了整个过程,所以即使https链接也能抓取,但前提是伪造的这个客户端有正确的SSL证书。

寻找错误根源
在这里插入图片描述
爬虫运行中提示SSL error错误的情况,一般是本地证书或者相关SSL库没有正确安装、服务器使用自己制作的CA证书,没有有权威机构认证

image
解决证书异常问题

对于CA证书问题我们可以参考下面集中方案:

1.不验证CA证书,但要忽略安全警告
coding=utf-8import requests# 不验证CA证书则需要忽略安全警告方式一:
import urllib3urllib3.disable_warnings()
方式二:
from requests.packages.urllib3.exceptions 
import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 r=requests.get(url=“https://www.baidu.com/”,verify=False)print r.elapsed.total_seconds()

2.指定证书位置或含证书的文件夹(此文件夹是由OpenSSL工具制作的)

coding=utf-8import requestsr=requests.get(url=“https://www.baidu.com/”,verify='/path/to/certfile')
默认情况下verify是TRue

ID:Python之战

**|作|者|公(zhong)号:python之战 **

专注Python,专注于网络爬虫、RPA的学习-践行-总结

喜欢研究和分享技术瓶颈,欢迎关注

扫描二维码关注公众号,回复: 4907141 查看本文章

独学而无友,则孤陋而寡闻!

猜你喜欢

转载自blog.csdn.net/weixin_41624982/article/details/86467154
今日推荐