摘要

用python写爬虫的时候没我们经常遇到https认证的网站,采用常用模块requests模块,我们一般在请求中将verify设置成假,免证书验证,但是这些都是理想状态,https请求很容易报错,一旦报错就难以解决。

举个列子

编写一个简单的列子,我们的目标对象是一个https的网站,它的编码是gb2312,按照常用手法,我们设置免验证的方法,按照我们正常的逻辑,肯定是能成功,但是这里却不符合逻辑

简单爬虫案例

下面开始运行代码:

异常报错

报错的信息,无非是ssl的各种报错,我这里是 Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),),然今天今天要讲的就是解决一切SSLError

解决思路

既然是http是认证出了问题,那么我们就去修改代码解决,代码解决不了,我就让第三方程序去解决,那这第三方软件都属于那些?很多,就是抓包软件并且支持https,比如像fiddler什么的软件...这种法法的原理:就是一个代理服务器原理,python写的爬虫会报错,但代理服务器不会报错,所以我们这边就是采用这样的思路,不过是本地版的代理服务器。

开始搭建

我这边采用的抓包软件是burpsuit,这是一款非常牛逼的抓包软件,因为之前做渗透工作,所以burpsuit比较顺手。burpsuit的其他用法,我们可以百度一下,burpsuit这个比较出名的,我们下载这个抓包软件,然后设置他的证书(burpsuit抓https大家自行百度),让他可以支持https抓包就可以了,burpsuit安装前请安装java的环境,他是用java的开发,下载下来后,我们启动软件,点击proxy这个选项

burpsuit界面

然后我们点击intercept is on 让它变成off状态,然后在点击options,

burpsuit进入options

进入options,我们可以看见,我们现在的代理服务器是127.0.0.1:8080

代理界面

burpsuit一打开默认就是127.0.0.1:8080,这样就是一个简单的代理服务器。那么我们在爬虫中只要添加这个代理ip,就可以绕过ssl错误,当然你可以在浏览器internet设置成全局代理ip,这样就不用修改代码他也是成功的,我这边修改了代理,大家可以看看是否成功:

修改代码

给爬虫添加代理

验证方案

修改完爬虫,我们点击运行,效果是预想的一样的的,完美解决了https产生的ssl认证的问题

正常返回源码

后话

总的来说,这种方法可以搞定一切https的问题,但是有一个问题,一直困扰我好久,代理ip的问题,我在本地设置代理服务器,代理的出口就是本地的ip,那么一旦我访问频率过高,我的代理服务器的ip也是会被封杀,所以这里呢需要一个代理服务器的二次代理的问题,貌似这个问题不太好解决;希望大家可以给一点思路解决这个问题,

有什么问题与建议可以联系:chinapython@yeah.net

【技术】python 爬虫一招解决SSl 报错SSLError相关推荐

  1. python怎么写中文至excel_[ Python爬虫实战 ] python 操作excel以及解决中文报错 - pytorch中文网...

    有时候我们可以把一些简单的数据存储进Excel文件中,比如我们的我们爬取了某网站的用户ID,昵称,我们可以存储进Excel中. 环境安装 xlwt,xlrd是python读写操作excel的模块,你可 ...

  2. 一招解决robotframework报错“command: pybot.bat --argumentfile”

    Robotframework安装完成后,运行case报如下错误, command: pybot.bat --argumentfile c:\users\18082192\appdata\local\t ...

  3. python3.6源码编译安装 解决SSL报错

    从源码编译安装python3.6之后,用pip的时候可能会提示SSL错误,实际上是openssl和python的安装有问题,本文给出安装openssl和python3.6.6的完整过程. 1.编译安装 ...

  4. 已解决Python pandas.read_excel读取Excel文件报错

    已解决(Python pandas.read_excel读取Excel文件报错)io = ExcelFile(io,storage_options=storage.options, engine=en ...

  5. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05 在windows下运行composer却出现SSL报错: E:\www>php -f co ...

  6. python中引入包的时候报错AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘解决方法?

    python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法? 参考文章: (1)pyth ...

  7. python爬虫中文乱码解决方法

    python爬虫中文乱码解决方法 参考文章: (1)python爬虫中文乱码解决方法 (2)https://www.cnblogs.com/surecheun/p/9694052.html 备忘一下.

  8. python爬虫 403 Forbidden 解决方法

    python爬虫 403 Forbidden 解决方法 参考文章: (1)python爬虫 403 Forbidden 解决方法 (2)https://www.cnblogs.com/tian-sun ...

  9. 关于python下解决pyspark报错问题

    关于python下解决pyspark报错问题 问题描述: Java not found and JAVA_HOME environment variable is not set. Install J ...

最新文章

  1. 动态内存检测工具Valgrind
  2. JS重复引用也会导致错误
  3. 50. Leetcode 105. 从前序与中序遍历序列构造二叉树 (二叉树-二叉树构建)
  4. Matlab中下标,斜体,及希腊字母的使用方法
  5. C/C++ ultoa函数 - C语言零基础入门教程
  6. 【java】Thread.start 它是怎么让线程启动的呢
  7. 前端开发技巧:网页切图图片格式选择GIF、JPEG 和 PNG区别和对比
  8. 单面打印机双面打印———python pdf拆分重排
  9. Mybatis 札记(三、分页、注解开发)麻雀虽小,五脏俱全
  10. Nginx区分PC或手机访问不同网站
  11. 在财报发布前,美光科技值得买入吗?
  12. 详细解析电源滤波电容的选取与计算
  13. 以python自定义模块的方式共享API(数据,短信通知、邮件通知,代理等)
  14. Tomcat 8(一)Tomcat常用配置
  15. 在EXCEL中导入txt文本数据
  16. 浅谈航飞重叠度,利用小工具计算大疆精灵、M300、垂起固定翼航飞重叠度——拒绝航飞空洞
  17. 【软件构造】java使用海龟绘图绘制黄金分割曲线
  18. 爱家客: 生活空间分享平台
  19. 无线Wifi密码之PIN破解篇(WPA)
  20. MAC 命令行 查看硬盘和文件夹大小(占用空间)

热门文章

  1. linux --chdir() 改变当前工作目录函数
  2. web渗透测试----28、ARP欺骗
  3. 邀请函|欢迎参加2019云创大数据实验平台金融类/电子商务类/数学统计类院校各省总代理招募大会!...
  4. fetch和XHR的区别
  5. MySQL备份和恢复:mysqldump工具用法详述
  6. 《数据结构》XB专场(完)模块的引用与裁剪
  7. 电脑崩溃后QQ微信能登录,却打开不了网页的一种解决办法
  8. 蓝桥杯嵌入式-第九届省赛-电子定时器
  9. OpenCV学习(13) 细化算法(1)
  10. leetcode:13、罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。