理解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 查看本文章
独学而无友,则孤陋而寡闻!