大家应该都很熟悉
点击滑块然后移动到图片缺口进行验证
现在越来越多的网站使用这样的验证方式
为的是增加验证码识别的难度
那么
对于这种验证码
应该怎么破呢
接下来就是
打开 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;
看了一下缺口的图片也是如此
到这里
我们的第一个思路就是
下载这两张原始图片
然后通过偏移量合成两张真正的图片
背景图
缺口图
↓变身
那么怎么做呢?
因为我们还要模拟滑动滑块
所以呢
我们要用到 selenium
打开b站的登录页
然后等到那个滑块显示出来
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun