大家应该都很熟悉
点击滑块然后移动到图片缺口进行验证

现在越来越多的网站使用这样的验证方式
为的是增加验证码识别的难度

那么
对于这种验证码
应该怎么破呢
接下来就是

打开 b 站的登录页面
https://passport.bilibili.com/login

可以看到登录的时候需要进行滑块验证
按下 F12
进入 Network
看下我们将滑块移到缺口松开之后做了什么提交

可以看到是一个 GET 请求
但是
这请求链接也太特么长了吧
我们来看看请求的参数是怎么样的

哇靠
gt?
challenge?
w?
这些都是什么鬼参数
还加密了
完全下不了手啊

既然以请求的方式不好弄
我们从它们的源代码入手
看看有什么突破口

回到 b 站的登录页
按下 F12
进入 Element
然后点击滑块出现了图片
定位一下

发现有两个 a 标签
一个 class 是 gt_bg gt_show
一个 class 是 gt_fullbg gt_show
和小帅b想的一样
这个验证码应该是有两张图片
一张是完全的背景图片
一张是缺口的图片
那把这两张图片下载下来对比一下不就行了
打开 a 标签一看

一张图片被切割成很多小块
原来这张图片是拼出来的
我们看看原始图片是怎么样的

什么乱七八糟的
再仔细看下源代码
原来是在同一张图片通过偏移量合成了一张完整的图片
background-position: -277px -58px;
看了一下缺口的图片也是如此

到这里
我们的第一个思路就是
下载这两张原始图片
然后通过偏移量合成两张真正的图片
背景图


缺口图

本文介绍了如何使用Python和Selenium破解b站的滑动验证码。通过分析网页源代码,获取原始图片,合成完整图片,计算滑动距离,模拟人类滑动轨迹,最终成功识别滑动验证码。这种方法也可应用于其他类似滑动验证码的场景。
最低0.47元/天 解锁文章
1229

被折叠的 条评论
为什么被折叠?



