【最新猿人学】 验证码 - 图文点选 文字验证码识别

暗号:aHR0cHM6Ly9tYXRjaC55dWFucmVueHVlLmNuL21hdGNoLzg=

该题为图文点选识别,点击对应的文字后,点击指定的页面,才能获取到对应的数据:

首先进行抓包分析,验证码请求接口一共返回了5个重要的数据:

所以先编写代码访问端口,将image 和 验证码id保存下来

接下来就是最重要的文字识别,我这里是使用easyocr库进行的文字识别,但是识别效率较低,有时候9个字只能够识别出8个

附上代码:

js 复制代码
from PIL import Image

import easyocr

import numpy as np  # 新增:需要转numpy数组

 

# 初始化 OCR(只加载中文,速度快)

reader = easyocr.Reader(['ch_sim'], gpu=True)

 

# --------------- 改成你的图片路径 ----------------

image_path = "更改为你的图片名字"

img = Image.open(image_path)

w, h = img.size

 

# 自动切 3x3 格子

hz = []

cell_w = w//3

cell_h = h//3

 

print("开始识别 9 个格子文字...\n")

for row in range(3):

    for col in range(3):

        x1 = col * cell_w

        y1 = row * cell_h

        x2 = x1 + cell_w

        y2 = y1 + cell_h

 

        # 裁剪格子

        cell = img.crop((x1, y1, x2, y2))

 

        # 修复:PIL Image 转 numpy 数组,再传给 easyocr

        cell_np = np.array(cell)

 

        # 识别

        result = reader.readtext(cell_np, detail=0)

        text = result[0] if result else ""

        hz.append(text.strip())

 

print(hz)

上面说到,这个文字识别库识别效率比较低,所以我使用了死循环,如果识别后要点击的4个字都在识别的文字列表里面,才结束循环:

点击坐标识别我是模拟了九个点的坐标,并且使用列表来完成:

js 复制代码
from random import randint as r

zb=\[\[51+r(-5,5),54+r(-5,5)],\[140+r(-5,5),50+r(-5,5)],\[255+r(-5,5),50+r(-5,5)],\[54+r(-5,5),158+r(-5,5)],\[157+r(-5,5),140+r(-5,5)],\[270+r(-5,5),140+r(-5,5)],\[57+r(-5,5),280+r(-5,5)],\[157+r(-5,5),253+r(-5,5)],\[252+r(-5,5),258+r(-5,5)]]

之后再看验证接口,参数一共需要带两个,这里没有使用到任何加密:

这里有一个小坑!!!

接口中clicks参数中的x和y是由双引号引起来的,所以访问的时候也要使用双引号,可使用 str.replace("'", """) 将单引号改为双引号,如果传入的是单引号,会导致验证失败

之后就能正确获取到数据:

相关推荐
代码搬运媛6 小时前
Jest 测试框架详解与实现指南
前端
counterxing7 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq7 小时前
windows下nginx的安装
linux·服务器·前端
之歆7 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜7 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108087 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
candyTong7 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
kyriewen9 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm10 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy10 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程