爬虫之极验验证码破解-滑动拼图验证码破解
滑动拼图验证码破解
- 前言
- 步骤分析
- 第一步,获取原图
- 第二步 拼接图片
- 第三步 计算豁口所在位置
- 第四步 计算拖动距离
- 模拟拖动
- 其他
前言
滑动验证码已经流行很多年了,我们在这里尝试一下如何实现滑动拼图验证码的自动化拖动。
这是某网站的注册页面,点击拖动按钮后会出现豁口滑动。
步骤分析
大致流程就是使用webdriver此页面后,获取到原图以及有豁口的图,拿这两个图进行对比,找到豁口部分的左侧坐标,根据这个坐标进行滑动验证即可。
第一步,获取原图
鼠标放到图片上,右键检查元素即可发现该图片是以精灵图的形式展现出来的,而且原图是由多个小图片打乱顺序后拼接而成,审查元素可以看到小图片在混乱大图中的坐标点,我们要做的就是根据此坐标点和图片大小对图片进行拼接,使其呈现出与web页面中图片一样的图片。
该页面返回了两张图片,一个是完整图一个是豁口图,我们要根据这两个标签,去匹配出对应的小图座标点以及大图的url
代码如下:
得到如下格式的数据
第二步 拼接图片
坑点:该图片在网页中显示是312X116的,但是拼接之后有很多乱乱的线条,后来发现在web中,其大小为260X116。
思路:向该图片url发送请求获取混乱大图,使用pillow模块,创建一张空的图片,遍历上一步得到的坐标点,然后根据此坐标点和图片大小(10X58)从响应大图中copy出这个位置的图片,再将此图片粘贴到空图中,遍历过程中注意粘贴时所指定的坐标点,(该图片共分为52张小图片),前26张纵坐标为0,后20张纵坐标为58,横坐标要根据当前在此行中是第几个进行计算。
代码如下:
运行效果:
到此,已经可以获得正常顺序的图片了。
第三步 计算豁口所在位置
对比两张图片,豁口部分明显暗于正常的图片,我们可以通过像素值进行判断。
三个像素点的对应的值之差都大于50即认定是该点为豁口左上角。
第四步 计算拖动距离
设豁口左上角x轴坐标为X,
为了能让滑块与豁口重合,大概要移动X-10的距离。
模拟拖动
使用selenium模拟拖动即可
其他
其实还有很多没解决的问题,譬如验证码后端会对你的拖动轨迹进行判断,很有规律的拖动很容易被检测到为机器,从而导致拖动失败。
其次还有webdriver特征值检测。
本人使用pyppeteer进行模拟拖动,可以通过异步执行js修改webdriver特征值,但是还没有解决拖动这个问题,Pyppeteer提供的拖动方法貌似有bug,短距离拖动无法进行。
爬虫之极验验证码破解-滑动拼图验证码破解相关推荐
- js php滑动拼图解锁,js 滑动拼图验证码
以前的验证码很简单,就是一个带些背景色或背景图和干扰线的纯数字字母类的验证码,现在已经发展变得很丰富了.我见过的就有好几种:纯字母数字类,数学计算类,依次点击图片上的文字类,从下列图片列表里选取符合描 ...
- php滑动拼图验证,JS实现PC手机端和嵌入式滑动拼图验证码三种效果
PC和手机端网站滑动拼图验证码效果源码,同时包涵了弹出式Demo,使用ajax形式提交二次验证码所需的验证结果值,嵌入式Demo,使用表单形式提交二次验证所需的验证结果值,移动端手动实现弹出式Demo ...
- uniapp、vue实现滑动拼图验证码
实际开发工作中,在登陆的时候需要短信验证码,但容易引起爬虫行为,需要用到反爬虫验证码,今天介绍一下拼图验证码,解决验证码反爬虫中的滑动验证码反爬虫. 原理 滑动拼图验证码是在滑块验证码的基础上增加了一 ...
- 滑动拼图验证码操作步骤:_拼图项目:一个不完整的难题
滑动拼图验证码操作步骤: 马克·雷因霍尔德(Mark Reinhold)最近提议延迟Java 9,以花更多的时间完成项目Jigsaw,这是即将发布的版本的主要功能. 虽然这个决定肯定会使Java的厄运 ...
- 滑动拼图验证码操作步骤:_拼图项目:延期的后果
滑动拼图验证码操作步骤: Mark Reinhold先生于2012年7月宣布 ,他们计划从Java 8撤消Jigsaw项目 ,因为Jigsaw计划于2013年9月(从现在开始一年)推迟其发布. 这个日 ...
- 滑动拼图验证码 免费 java_js+canvas实现滑动拼图验证码功能
上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的.我的想法是,随机生成图片,随机生成位置,再用canvas裁剪出滑块和背景图.下面介绍具体步骤. 首先随便找一张图片渲染到c ...
- Android 滑动拼图验证码控件
Android 滑动拼图验证码控件 简介: 很多软件为了安全防止恶意攻击,会在登录/注册时进行人机验证,常见的人机验证方式有:谷歌点击复选框进行验证,输入验证码验证,短信验证码,语音验证,文字按顺序选 ...
- 小视频app源码,Android 滑动拼图验证码控件
小视频app源码,Android 滑动拼图验证码控件 代码实现: 滑块视图类:SlideImageView.java.实现小视频APP源码随机选取拼图位置,对拼图位置进行验证等功能. public c ...
- php滑动拼图验证,JS怎么实现滑动拼图验证码
这次给大家带来JS怎么实现滑动拼图验证码,JS实现滑动拼图验证码的注意事项有哪些,下面就是实战案例,一起来看一下. 上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的.我的想 ...
最新文章
- c# 网站在服务器上第一次请求都需要耗时很久,最.net面试题目.doc
- JavaScript 复习之数据类型
- python三目运算符_Python十日谈
- 【深度学习】如何更好的Fit一个深度神经网络框架下的模型
- JAVA lock 原理讲解
- ComponentBase.createMetaData and manifest.json oRoute
- 51单片机串行口的使用与串行通信
- HTML页面用ajax方式传递表单数据给后台,数据库插入信息后将json对象传回前端JS处理(前后台交互)
- paip.python错误解决13
- 惠普z800工作站bios设置_惠普台式机装win10系统及bios设置(uefi+gpt)
- 详解音视频中的DRM数字版权技术
- 网络广告中,CPC、CPA、CPM 的定义各是怎样的?
- RedShift护眼软件的配置
- 算法笔记习题 2-9小节
- matlab笔记 与excel表格的数据交互—xlsread和xlswrite函数
- 世界三大质量奖项介绍---波多里奇奖(转载)
- 搞机攻略(Android Root iOS越狱)
- Codeforces 1379B.Dubious Cyrpto
- 最简单的11g Active DataGuard(ADG)搭建配置过程(项目步
- 服务器搭建网站:出现503是什么意思?怎么排查?
热门文章
- cf战队模板(html),cf战队 cf主力比赛接待战队专属频道模版
- 会员计费系统c语言_c语言课程设计报告 会员卡计费系统源代码
- 第八章 可扩展标记语言XML
- 思科收购OpenDNS以提升Security Everywhere2015
- 中国石油化工产业发展环境深度分析及投资价值评估报告2022-2028年版
- c语言农历的算法,农历一百年算法(1921~2021)【C语言代码】
- 影像组学:医学影像学与个性化精准医疗的桥梁
- [博客杂志]2007年中国最红的十大美女明星
- 青山不语,碧海无痕,数字山河间的中国脊梁
- Spark面试精选题(04)