type
status
date
slug
summary
tags
category
icon
password
前言
最近遇到了滑块验证码识别的问题,写一篇文章来记录一下过程
目前解决方法用Python脚本实现自动化填入信息→点击按钮→截图滑块验证码→识别距离→微调移动距离
所有代码均由ChatGPT代写
下面以腾讯的滑块验证码为例子
前期准备
环境配置
使用Chromium和配套的Chromedriver,不使用系统Chrome可以避免Chrome版本问题,高手随意
下载好chrome-win.zip和chromedriver_win32.zip并解压到项目文件夹中

编写代码
首先是配置Chrome浏览器,并全屏启动
打开Url,填入信息,浏览器右键检查可以找到需要填入信息的元素ID和点击按钮的元素ID
这里我测试的是一个短信轰炸
由于滑块验证码被嵌入到了
iframe
元素中,所以不进行切换会找不到验证码元素需要通过Xpath来寻找滑块验证码元素,等待加载完毕后截图
到这一步我们就得到了一张中心含有滑块验证码的截图,直接使用这张截图是分析不了的,需要进行裁剪
把图片发送给ChatGPT-4o,可以得到裁剪的代码

裁剪后大小如下

调用captcha-recognizer,得到滑动距离
接下来进行拖动,target_position的值需要根据实际情况调整,这里我进行测试后发现移动 像素为 distance + 40 的值 恰好是成功验证的距离,拖动到指定位置后,还需要再点击一下
完整代码
碎碎念
文章没啥含金量,主要站在巨人的肩膀上
过程期间遇到了挺多问题
滑块验证码一般是由2张图片组成,一开始的思路是获取这2张图片的Url地址,下载后调用在线打码平台,实现后发现识别率实在是太低了,返回的像素值偏差很大,这部分也可能是我没有找到返回值与实际移动值之间的关系,同时在线打码平台并不会报错,所以也难以判断是否识别正确