美文网首页
破解滑动验证码

破解滑动验证码

作者: Cracks_Yi | 来源:发表于2017-11-06 20:18 被阅读0次

最近爬虫采集数据遇到了验证码的障碍,需要破解某网站的滑动验证码(GEETEST)。

主要参考https://segmentfault.com/q/1010000008584470,这里面实现了图片拼接(还原),识别缺口位置,还有模拟拖动。参考代码,最终破解了针对目标网站的滑动验证码。步骤如下:

1.图片还原
为什么有这一步呢?网站展现给我们的是完整的图片,点击滑块后图片会出现一个缺口。实际上点击前后是两张图,每个整图是一小块一小块拼起来的图,而我们能获取到的是两张小块乱序拼接在一起的图,如下:


点击前乱序图.jpg 点击后乱序图.jpg

所以第一步就是按小图切分后再按正确的顺序重新拼接起来,还原成我们网页上看到的图。按什么顺序呢?"检查元素"后

before.png after.png

2.识别缺口位置
我们可以看到前后两张图只有两处地方不一样,一处是明显的缺口,另一处是不明显的伪缺口(以下简称干扰)。我们可以对比前后两张图,找到不一样的地方,再用一个阈值排除掉干扰即可。
一个像素点有r,g,b三个值,我采用的衡量两个像素点差别的度量是前后图的r,g,b的差值的绝对值的加和。
做实验,当阈值为70时,


阈值为100时,


直到阈值为150时,



再也没有干扰了,缺口的部分地方也识别不出来了,但是没关系,只要用识别到的最小的x作位置即可。

3.模拟拖动
这个是相对麻烦的一步。最开始用各种随机,x随机y随机移动时休息时间随机,发现完全无法通过。网站后台应该用了模型去判断是否符合人的操作,所以想破解还得再还原人的操作。而人的操作对应到电脑操作就是一个记录每一步移动距离的数组。
参考https://www.zhihu.com/question/32209043,部分提到人的拖动是先加速后减速的,利用这个思想,结合自己实验多次,发现了一些规律:
1.人总体拖动先加速后减速
2.两步之间移动的距离差不能过大过频繁
3.每一步移动距离不能太大(一般2就算比较大)
最后建立了一个先慢加速后快加速再减速的模型,以距离来确定应该用哪一个加速度,最后一段距离如果速度超过阈值,再用一个更强的减速。在整个过程中加一些低概率随机的-1。
这种方法效果非常拟人,通过率也很高。通过率没统计过。

相关文章

  • Python 滑块验证码

    看了滑块验证码(滑动验证码)相比图形验证码,破解难度如何?[https://www.zhihu.com/quest...

  • python爬虫之模拟移动

    爬虫的一大难点就是破解验证码。验证码大致上分为文字识别、滑动、文字点击、图像识别等,本文讲的是其中的滑动验证码。滑...

  • python爬虫之滑动验证码[完整版]

    爬虫的一大难点就是破解验证码。验证码大致上分为文字识别、滑动、文字点击、图像识别等,本文讲的是其中的滑动验证码。滑...

  • python爬虫之图像对比

    爬虫的一大难点就是破解验证码。验证码大致上分为文字识别、滑动、文字点击、图像识别等,本文讲的是其中的滑动验证码。滑...

  • python爬虫之轨迹算法

    爬虫的一大难点就是破解验证码。验证码大致上分为文字识别、滑动、文字点击、图像识别等,本文讲的是其中的滑动验证码。滑...

  • selenium破解滑动验证码

    破解滑动验证码,测试url博客园登录界面: https://account.cnblogs.com/signin?...

  • 破解滑动验证码

    最近爬虫采集数据遇到了验证码的障碍,需要破解某网站的滑动验证码(GEETEST)。 主要参考https://seg...

  • 滑动验证码破解

    这周在看用puppeteer来做滑动验证码破解方面的东西,下面是常见的破解思路。不熟悉puppeteer的同学可以...

  • 2018-04-17持续集成 未实践

    阮一峰 持续集成 百度 CI JenKins 自动部署 puppeteer 破解 geetest 滑动验证码 ko...

  • 破解滑动验证码

    介绍 一些网站会在正常的账号密码认证之外加一些验证码,以此来明确地区分人/机行为,从一定程度上达到反爬的效果,对于...

网友评论

      本文标题:破解滑动验证码

      本文链接:https://www.haomeiwen.com/subject/jotapxtx.html