滑动拼图验证码破解

  • 前言
  • 步骤分析
    • 第一步,获取原图
    • 第二步 拼接图片
    • 第三步 计算豁口所在位置
    • 第四步 计算拖动距离
    • 模拟拖动
    • 其他

前言

滑动验证码已经流行很多年了,我们在这里尝试一下如何实现滑动拼图验证码的自动化拖动。
这是某网站的注册页面,点击拖动按钮后会出现豁口滑动。

步骤分析

大致流程就是使用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,短距离拖动无法进行。

爬虫之极验验证码破解-滑动拼图验证码破解相关推荐

  1. js php滑动拼图解锁,js 滑动拼图验证码

    以前的验证码很简单,就是一个带些背景色或背景图和干扰线的纯数字字母类的验证码,现在已经发展变得很丰富了.我见过的就有好几种:纯字母数字类,数学计算类,依次点击图片上的文字类,从下列图片列表里选取符合描 ...

  2. php滑动拼图验证,JS实现PC手机端和嵌入式滑动拼图验证码三种效果

    PC和手机端网站滑动拼图验证码效果源码,同时包涵了弹出式Demo,使用ajax形式提交二次验证码所需的验证结果值,嵌入式Demo,使用表单形式提交二次验证所需的验证结果值,移动端手动实现弹出式Demo ...

  3. uniapp、vue实现滑动拼图验证码

    实际开发工作中,在登陆的时候需要短信验证码,但容易引起爬虫行为,需要用到反爬虫验证码,今天介绍一下拼图验证码,解决验证码反爬虫中的滑动验证码反爬虫. 原理 滑动拼图验证码是在滑块验证码的基础上增加了一 ...

  4. 滑动拼图验证码操作步骤:_拼图项目:一个不完整的难题

    滑动拼图验证码操作步骤: 马克·雷因霍尔德(Mark Reinhold)最近提议延迟Java 9,以花更多的时间完成项目Jigsaw,这是即将发布的版本的主要功能. 虽然这个决定肯定会使Java的厄运 ...

  5. 滑动拼图验证码操作步骤:_拼图项目:延期的后果

    滑动拼图验证码操作步骤: Mark Reinhold先生于2012年7月宣布 ,他们计划从Java 8撤消Jigsaw项目 ,因为Jigsaw计划于2013年9月(从现在开始一年)推迟其发布. 这个日 ...

  6. 滑动拼图验证码 免费 java_js+canvas实现滑动拼图验证码功能

    上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的.我的想法是,随机生成图片,随机生成位置,再用canvas裁剪出滑块和背景图.下面介绍具体步骤. 首先随便找一张图片渲染到c ...

  7. Android 滑动拼图验证码控件

    Android 滑动拼图验证码控件 简介: 很多软件为了安全防止恶意攻击,会在登录/注册时进行人机验证,常见的人机验证方式有:谷歌点击复选框进行验证,输入验证码验证,短信验证码,语音验证,文字按顺序选 ...

  8. 小视频app源码,Android 滑动拼图验证码控件

    小视频app源码,Android 滑动拼图验证码控件 代码实现: 滑块视图类:SlideImageView.java.实现小视频APP源码随机选取拼图位置,对拼图位置进行验证等功能. public c ...

  9. php滑动拼图验证,JS怎么实现滑动拼图验证码

    这次给大家带来JS怎么实现滑动拼图验证码,JS实现滑动拼图验证码的注意事项有哪些,下面就是实战案例,一起来看一下. 上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的.我的想 ...

最新文章

  1. c# 网站在服务器上第一次请求都需要耗时很久,最.net面试题目.doc
  2. JavaScript 复习之数据类型
  3. python三目运算符_Python十日谈
  4. 【深度学习】如何更好的Fit一个深度神经网络框架下的模型
  5. JAVA lock 原理讲解
  6. ComponentBase.createMetaData and manifest.json oRoute
  7. 51单片机串行口的使用与串行通信
  8. HTML页面用ajax方式传递表单数据给后台,数据库插入信息后将json对象传回前端JS处理(前后台交互)
  9. paip.python错误解决13
  10. 惠普z800工作站bios设置_惠普台式机装win10系统及bios设置(uefi+gpt)
  11. 详解音视频中的DRM数字版权技术
  12. 网络广告中,CPC、CPA、CPM 的定义各是怎样的?
  13. RedShift护眼软件的配置
  14. 算法笔记习题 2-9小节
  15. matlab笔记 与excel表格的数据交互—xlsread和xlswrite函数
  16. 世界三大质量奖项介绍---波多里奇奖(转载)
  17. 搞机攻略(Android Root iOS越狱)
  18. Codeforces 1379B.Dubious Cyrpto
  19. 最简单的11g Active DataGuard(ADG)搭建配置过程(项目步
  20. 服务器搭建网站:出现503是什么意思?怎么排查?

热门文章

  1. cf战队模板(html),cf战队 cf主力比赛接待战队专属频道模版
  2. 会员计费系统c语言_c语言课程设计报告 会员卡计费系统源代码
  3. 第八章 可扩展标记语言XML
  4. 思科收购OpenDNS以提升Security Everywhere2015
  5. 中国石油化工产业发展环境深度分析及投资价值评估报告2022-2028年版
  6. c语言农历的算法,农历一百年算法(1921~2021)【C语言代码】
  7. 影像组学:医学影像学与个性化精准医疗的桥梁
  8. [博客杂志]2007年中国最红的十大美女明星
  9. 青山不语,碧海无痕,数字山河间的中国脊梁
  10. Spark面试精选题(04)