1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 爬虫之极验验证码破解-滑动拼图验证码破解

爬虫之极验验证码破解-滑动拼图验证码破解

时间:2022-02-15 00:58:10

相关推荐

爬虫之极验验证码破解-滑动拼图验证码破解

滑动拼图验证码破解

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

前言

滑动验证码已经流行很多年了,我们在这里尝试一下如何实现滑动拼图验证码的自动化拖动。

这是某网站的注册页面,点击拖动按钮后会出现豁口滑动。

步骤分析

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。