步骤一:点击数据分析
点击滑动按钮,将发送一个请求到 /zfcaptchaLogin
请求内容
1 | "type": "verify" |
通过 base64 解密 mt
和 extend
得出解密的数值
1 | # mt |
mt
为用户的点击行为,x为X轴上的值,y为Y轴上的值,t为时间戳。通过大量点击分析,发现x值最小值为 950,得出950 为 X轴的起点,y值随机无固定值。extend
为请求头部内容
步骤二:滑动验证码图像分析,计算滑动距离x值
将图像灰度化,通过getpixel
可以获取图像某一点的颜色值, 颜色值越高代表图像越浅,所以寻找纵向连续50个像素点均是 getpixel(x+1, y) > getpixel(x, y)
(X轴=x 比 X轴=x+1 颜色浅)
并扫描图像,当x=130、扫描高度=50时,的颜色比x+1时深。
1 | from PIL import Image |
优化代码计算x,y值
1 | import json |
步骤三:生成提交参数
通过 步骤一得出x值最小为950,y值无规律
则提交参数mt
的大致格式数据是
1 | [{ |
获取mt
参数
1 | import json |