用Python爬虫破解滑动验证码的案例解析


Posted in Python onMay 06, 2021

做爬虫总会遇到各种各样的反爬限制,反爬的第一道防线往往在登录就出现了,为了限制爬虫自动登录,各家使出了浑身解数,所谓道高一尺魔高一丈。

今天分享个如何简单处理滑动图片的验证码的案例。

用Python爬虫破解滑动验证码的案例解析


类似这种拖动滑块移动到图片中缺口位置与之重合的登录验证在很多网站或者APP都比较常见,因为它对真实用户体验友好,容易识别。同时也能拦截掉大部分初级爬虫。

作为一只python爬虫,如何正确地自动完成这个验证过程呢?

先来分析下,核心问题其实是要怎么样找到目标缺口的位置,一旦知道了位置,我们就可以借用selenium等工具完成拖动的操作。

我们可以借用opencv来解决这个问题,主要步骤:

用Python爬虫破解滑动验证码的案例解析

opencv 是什么?

OpenCV(Open Source Computer Vision Library)是开放源代码计算机视觉库,主要算法涉及图像处理、计算机视觉和机器学习相关方法,可用于开发实时的图像处理、计算机视觉以及模式识别程序。

直接安装

用Python爬虫破解滑动验证码的案例解析

首先将图片进行高斯模糊处理,高斯模糊的主要作用是减少图像的噪声,用于预处理阶段。

用Python爬虫破解滑动验证码的案例解析

处理后的效果

用Python爬虫破解滑动验证码的案例解析

接着用Canny边缘检测到得到一个包含“窄边界”的二值图像。所谓二值图像就是黑白图,只有黑色和白色。

用Python爬虫破解滑动验证码的案例解析

用Python爬虫破解滑动验证码的案例解析

轮廓检测

用Python爬虫破解滑动验证码的案例解析

找出所有的轮廓,并用红色线框将其绘制标识出来了,看出来大大小小有几十个轮廓

用Python爬虫破解滑动验证码的案例解析

剩下的问题就好办了,我们只需要对轮廓的面积或者周长范围做限制,就能过滤出目标轮廓的位置, 前提是我们对目标位置的轮廓大小是预先确定的。

用Python爬虫破解滑动验证码的案例解析

轮廓的面积大概是6000到8000之间,周长在300到500之间, 最后用外接矩形获取该轮廓图的坐标位置和宽高大小。

用Python爬虫破解滑动验证码的案例解析

如上就找到了目标位置,剩下的工作就是将滑块移动到指定位置即可

到此这篇关于用Python爬虫破解滑动验证码的案例解析的文章就介绍到这了,更多相关Python爬虫破解滑动验证码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python2.x版本中cmp()方法的使用教程
May 14 Python
python实现一次创建多级目录的方法
May 15 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
python实现三次样条插值
Dec 17 Python
python输入多行字符串的方法总结
Jul 02 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
python 搜索大文件的实例代码
Jul 08 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python计算无向图节点度的实例代码
Nov 22 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
python中uuid模块实例浅析
Dec 29 Python
python本地文件服务器实例教程
python字符串常规操作大全
python自动化之如何利用allure生成测试报告
python使用openpyxl库读写Excel表格的方法(增删改查操作)
Python time库的时间时钟处理
Django项目如何获得SSL证书与配置HTTPS
Python基础之常用库常用方法整理
Apr 30 #Python
You might like
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php 无限分类的树类代码
2009/12/03 PHP
php常见的魔术方法详解
2014/12/25 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
python中__slots__用法实例
2015/06/04 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Django 视图层(view)的使用
2018/11/09 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
校园门卫岗位职责
2013/12/09 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
团日活动策划书
2014/02/01 职场文书
公司管理建议书范文
2014/03/12 职场文书
房展策划方案
2014/06/07 职场文书
七夕情人节促销方案
2014/06/07 职场文书
横幅标语大全
2014/06/17 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
健康教育主题班会
2015/08/14 职场文书
初中思品教学反思
2016/02/20 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书