Python简单实现滑动验证码识别

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

复制代码
Python 3.10
Pycharm

模块使用:

复制代码
requests -> pip install requests
ddddocr -> pip install ddddocr (识别验证码)
base64

如何自动识别验证码:

复制代码
1. 抓包分析识别过程
    - 出现验证码链接
        get: https://captcha.jybc.com.cn/api/captcha/get?type=2&site=juyi5&_=1702037383847
        - img: 滑块图片
        - key:
        - slider: 完整图片 (有缺口)
        - y: 滑块y轴距离
    - 识别验证码链接
        post: https://captcha.jybc.com.cn/api/captcha/check (识别操作)
        - key: 来自于验证码链接返回的参数
        - type: 2 (固定) 验证码类型
        - value: 100 移动滑块值 Y轴 (需要通过JS抓包才知道的)
先获取 滑块图片 / 有缺口图片

代码展示

导入模块

python 复制代码
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 导入数据请求模块
import requests
import base64
import ddddocr # 验证码识别的

验证码链接

python 复制代码
url = 'https://captcha.jybc.com.cn/api/captcha/get?type=2&site=juyi5&_=1702037383851'

模拟浏览器

python 复制代码
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}

发送请求

python 复制代码
response = requests.get(url=url, headers=headers)

获取响应数据

python 复制代码
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
json_data = response.json()
img = json_data['data']['img'].split(',')[-1] # 滑块图片
slider = json_data['data']['slider'].split(',')[-1] # 有缺口图片
key = json_data['data']['key'] # key值
y = json_data['data']['y']
yzm = base64.b64decode(img) # 滑块图片二进制数据
yzm_ = base64.b64decode(slider) # 有缺口图片二进制数据

"""识别缺口位置"""

python 复制代码
det = ddddocr.DdddOcr(det=False, ocr=False)
res = det.slide_match(yzm, yzm_, simple_target=True)
value = res['target'][0] # 滑动距离

"""验证识别"""

python 复制代码
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
link = 'https://captcha.jybc.com.cn/api/captcha/check'
data = {
    'key': key,
    'type': '2',
    'value': value
}
post_data = requests.post(url=link, data=data, headers=headers).json()
data_url = 'https://www.juyi5.cn/ajax/supplier/get_contact_info'
data_ = {
    'user_id': '3435760',
    'auth_key': key,
    'auth_token': post_data['data']['token']
}
resp = requests.post(url=data_url, data=data_, headers=headers).json()
print(y)
print(res)
print(post_data)
print(resp)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

相关推荐
QuantumStack1 小时前
【C++ 真题】P1104 生日
开发语言·c++·算法
回家吃月饼1 小时前
pycharm2018配置gitee操作
pycharm·gitee
whoarethenext1 小时前
使用 C++/OpenCV 和 MFCC 构建双重认证智能门禁系统
开发语言·c++·opencv·mfcc
天水幼麟1 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习
沧海一笑-dj2 小时前
【51单片机】51单片机学习笔记-课程简介
笔记·学习·51单片机·江科大·江科大学习笔记·江科大单片机·江科大51单片机
笑稀了的野生俊2 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
Naiva2 小时前
【小技巧】Python+PyCharm IDE 配置解释器出错,环境配置不完整或不兼容。(小智AI、MCP、聚合数据、实时新闻查询、NBA赛事查询)
ide·python·pycharm
代码的奴隶(艾伦·耶格尔)2 小时前
后端快捷代码
java·开发语言
老虎06272 小时前
JavaWeb(苍穹外卖)--学习笔记04(前端:HTML,CSS,JavaScript)
前端·javascript·css·笔记·学习·html
Jay_5152 小时前
C++多态与虚函数详解:从入门到精通
开发语言·c++