用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 相关文章推荐
python脚本实现查找webshell的方法
Jul 31 Python
python图片验证码生成代码
Jul 02 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
django表单实现下拉框的示例讲解
May 29 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
Python选择网卡发包及接收数据包
Apr 04 Python
Python PO设计模式的具体使用
Aug 16 Python
python如何利用Mitmproxy抓包
Oct 10 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 Python
Python 键盘事件详解
Nov 11 Python
python本地文件服务器实例教程
python字符串常规操作大全
python自动化之如何利用allure生成测试报告
python使用openpyxl库读写Excel表格的方法(增删改查操作)
Python time库的时间时钟处理
Django项目如何获得SSL证书与配置HTTPS
Python基础之常用库常用方法整理
Apr 30 #Python
You might like
php读取文件内容的几种方法详解
2013/06/26 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python去除字符串两端空格的方法
2015/05/21 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python 文件数据读写的具体实现
2020/01/24 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
python爬虫用mongodb的理由
2020/07/28 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
个人考核材料
2014/05/15 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书