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

暗号: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("'", """) 将单引号改为双引号,如果传入的是单引号,会导致验证失败

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

相关推荐
云上工程笔记23 分钟前
SRT字幕一键转手绘动画:srt-whiteboard-animation的复刻实录
大数据·开发语言·javascript·人工智能·机器学习
风骏时光牛马32 分钟前
AI_Coding:智能代码创作引擎
前端
FungLeo37 分钟前
成为全栈·Vue管理后台篇·<scriptsetup>:把页面拆成可读、可测的 Vue 组件
前端·javascript·vue.js·typescript·前端组件化·composition api·vue sfc
卸任12 小时前
Vibe coding工具使用心得
前端·ai编程
brien913 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance13 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M13 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写13 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李13 小时前
一个复杂的动态表单是如何实现的
前端·设计模式