面包屑图标 当前位置: 首页
AI资讯
热点详情

影刀RPA截图OCR实战:从验证码识别到表格数据提取

AI热点日报
AI热点日报时间:2026-07-03
热点解读

有次做拼多多采集,商品价格死活取不到——页面源码里压根没有数字,价格是渲染在Canvas上的图片。XPath定位不到,文本提取是空的。 这时候就得换思路了——截图,然后OCR识别。 影刀RPA内置了截图和OCR能力,可以把“看得到但抓不到”的数据提取出来。这篇文章把截图指令、OCR引擎选型、验证码识

有次做拼多多采集,商品价格死活取不到——页面源码里压根没有数字,价格是渲染在Canvas上的图片。XPath定位不到,文本提取是空的。

这时候就得换思路了——截图,然后OCR识别

影刀RPA内置了截图和OCR能力,可以把“看得到但抓不到”的数据提取出来。这篇文章把截图指令、OCR引擎选型、验证码识别、图片预处理、识别校验一次讲清楚。

一、什么场景必须用OCR

以下几种情况,XPath和文本提取都不好用,得上OCR:

  • 数据以图片形式展示:部分老系统、图表、Canvas渲染的文字

  • 验证码识别:登录、提交等环节的图形验证码
  • 截图表格转文本:截取某个区域的表格图片,转成可编辑的数据
  • 防采集网站:文字渲染在Canvas里,源码里根本没有
  • 桌面应用文字提取:Windows桌面软件的界面文字,元素捕获不到

核心原则:OCR不是第一选择——能用元素捕获就尽量不用OCR。OCR识别率不是100%,模糊或背景复杂时准确率会下降。

社区版用户注意:截图和OCR操作不消耗影刀运行时长,但“网页截图”指令涉及网页操作会消耗时长。建议先把网页打开到目标状态,再集中截图识别。

二、影刀的截图指令(两种场景)

影刀的截图指令分两大类。

1. 截屏指令(桌面/窗口/任意区域)

指令名称:截屏。在指令面板搜索“截屏”就能找到。

截图来源可选:

  • 屏幕(整个显示器)

  • 窗口对象(指定某个窗口)
  • 当前激活窗口
  • 动态选择(鼠标框选)

提取区域

  • 全部:截取整个可见区域
  • 指定部分区域:按Ctrl+Alt+X框选,或输入矩形坐标(X1,Y1为左上角,X2,Y2为右下角)

保存方式

  • 剪切板:支持后续Ctrl+V粘贴
  • 文件:设置图片保存路径

2. 网页截图指令(浏览器专用)

指令名称:网页截图。专门针对网页场景。

截图区域可选:

  • 网页元素:对指定元素截图(比如只截验证码图片)
  • 网页可见区域:截当前浏览器可视区域
  • 整个网页:有滚动条时会截取完整页面(首屏以外的内容也能截到)

这里容易踩坑:影刀的“截图”指令截的是当前浏览器可视区域,不是整个页面。如果需要截取“首屏以下”的内容,需要先滚动再截图。

截图路径命名技巧

用变量占位符生成不重复文件名,避免覆盖:

C:截图screenshot_{{timestamp}}.png

{{timestamp}}会自动替换成当前时间戳,每次截图生成不同文件名。

三、OCR文字识别(三种引擎对比)

截图完成后,拖入“OCR文字识别”指令。参数包括:识别引擎、识别语言、识别区域。

引擎选型对比

对比项内置OCR百度OCR腾讯OCR微信OCR
费用免费每月1000次免费每月1000次免费免费
准确率80%-90%95%+95%+
特殊字体
配置复杂度需申请API Key需申请SecretId/Key

怎么选?

  • 日常简单文字识别:内置OCR够用了
  • 验证码或表格图片:建议配置百度或腾讯OCR,准确率更高
  • 不想配置API、识别中英混合:微信OCR是隐藏神器,零配置开箱即用

百度/腾讯OCR配置:在影刀的“配置AI引擎”里选择百度、腾讯或阿里云,填入对应的API Key和Secret。百度和腾讯每月分别有1000次的免费额度。

微信OCR:拖入“微信OCR识别”指令,设置图片路径即可。自动获取微信安装路径,零配置。调用微信原生OCR能力,中英文数字混合识别强,无需打开微信窗口。

四、实战一:识别图片验证码(完整流程)

验证码识别是OCR最经典的场景。以下是完整操作流程。

第一步:截图验证码区域

用“网页截图”指令,截图区域选“网页元素”,捕获验证码图片元素,保存到本地C:tempcaptcha.png

如果验证码是桌面应用里的,用“截屏”指令框选区域。

第二步:OCR识别

拖入“OCR文字识别”指令,图片路径填C:tempcaptcha.png,识别结果存到变量验证码文本

如果内置OCR识别率不高,换成百度OCR或微信OCR。

第三步:填入验证码

用“输入文本”指令,把验证码文本填到验证码输入框。

第四步:提交

点击“提交”或“登录”按钮。

完整流程结构

打开登录页
【循环-最多3次】:
    截图验证码 → C:tempcaptcha.png
    OCR识别(图片路径=C:tempcaptcha.png) → 验证码文本
    输入文本(验证码输入框, 验证码文本)
    点击提交按钮
    等待登录结果(5秒)
    如果登录成功:跳出循环
    如果登录失败:刷新验证码,继续下一次

五、实战二:ddddocr开源方案(验证码专用)

影刀内置OCR对简单文字还行,遇到扭曲、带干扰线的验证码就吃力了。ddddocr是专门为验证码设计的开源OCR库,识别准确率超90%,单张识别<500ms。

安装

在影刀安装目录下的Python环境里运行:

pip install ddddocr

在影刀里使用

在“执行Python代码”指令中粘贴以下代码:

# 影刀Python代码 - ddddocr验证码识别
# 输入变量:captcha_path(验证码图片路径)
# 输出变量:captcha_text(识别结果)

import ddddocr

def recognize_captcha(image_path):
    ocr = ddddocr.DdddOcr()
    with open(image_path, 'rb') as f:
        img_bytes = f.read()
    return ocr.classification(img_bytes)

captcha_text = recognize_captcha(captcha_path)
print(captcha_text)

影刀配置

  • 输入变量:{"captcha_path": "C:\temp\captcha.png"}
  • 输出变量:${captcha_text}

这里容易踩坑:ddddocr需要图片是RGB模式,如果验证码是灰度图或RGBA,可能识别失败。可以在代码里加一行image = image.convert('RGB')预处理。

六、实战三:识别图片中的表格数据

有些老系统的数据以图片表格形式展示,没办法用“获取元素文本”。用截图+OCR可以转成可编辑数据。

操作步骤

1. 截图表格区域

用“网页截图”或“截屏”指令,框选表格所在的区域,保存为PNG。

2. OCR识别

拖入“OCR文字识别”指令,识别结果存到变量表格文本

3. 解析结构化数据

识别结果是纯文本,需要用正则或Python代码提取结构化数据:

# 影刀Python代码 - 解析OCR识别的表格文本
# 输入变量:ocr_text(OCR识别结果)
# 输出变量:table_data(二维列表)

import re

# 按行分割
lines = ocr_text.strip().split('n')
table_data = []
for line in lines:
    # 按多个空格或制表符分割
    row = re.split(r's{2,}|t', line.strip())
    if row:
        table_data.append(row)

print(table_data)

4. 写入Excel

用“写入行数据到表格”把table_data逐行写入Excel。

这里容易踩坑:OCR识别表格时,列与列之间的分隔可能不准确。建议截图时留白边大一点,让OCR有更多上下文判断列边界。

七、图片预处理:提升识别率的关键

OCR识别率低的时候,问题往往不在OCR引擎,而在图片本身

常见预处理操作(Python代码)

在调用OCR之前,先用Python对图片做预处理:

# 影刀Python代码 - 图片预处理
# 输入变量:image_path(原始图片路径)
# 输出变量:processed_path(处理后图片路径)

from PIL import Image, ImageEnhance, ImageFilter

# 打开图片
img = Image.open(image_path)

# 1. 转为灰度(去除颜色干扰)
img = img.convert('L')

# 2. 增强对比度(让文字更清晰)
enhancer = ImageEnhance.Contrast(img)
img = enhancer.enhance(2.0)

# 3. 二值化(黑白分明)
threshold = 128
img = img.point(lambda p: p > threshold and 255)

# 4. 锐化(边缘更清晰)
img = img.filter(ImageFilter.SHARPEN)

# 保存预处理后的图片
processed_path = image_path.replace('.png', '_processed.png')
img.sa ve(processed_path)
print(processed_path)

预处理后的图片再交给OCR,识别率能提升10%-20%

常见预处理操作速查

问题预处理方法
图片颜色复杂、有背景干扰转灰度 + 二值化
文字模糊、边缘不清锐化 + 对比度增强
图片太小、文字挤在一起放大2倍(resize)
图片有噪点中值滤波去噪

八、识别校验与容错

OCR不是100%准确的。必须做识别结果的校验和容错

校验方法

方法一:格式校验 验证码通常是4-6位字母数字,用正则校验格式:

import re
if re.match(r'^[A-Za-z0-9]{4,6}$', captcha_text):
    # 格式正确,继续
else:
    # 格式不对,重新识别

方法二:长度校验 如果识别结果为空或长度不对,重新截图识别。

方法三:置信度阈值 百度/腾讯OCR会返回置信度分数,低于阈值(如80%)时触发重新识别或人工介入。

容错策略

设置 重试次数 = 0
设置 最大重试 = 3

循环(重试次数 < 最大重试):
    截图验证码
    OCR识别 → 验证码文本
    如果 验证码文本 符合格式要求:
        填入验证码
        提交
        如果 提交成功:跳出循环
    重试次数 = 重试次数 + 1
    等待1秒(刷新验证码)

如果 重试次数 >= 最大重试:
    发送告警通知("验证码识别失败,请人工介入")

九、常见坑点与避坑指南

坑1:截图路径找不到

现象:OCR指令报错“图片不存在”。

原因:截图保存路径写死了,但文件夹不存在。

解决:截图前先用“创建文件夹”指令确保目录存在。

坑2:换台电脑OCR识别不出来

现象:自己电脑上跑得好好的,换台机器就识别失败。

可能原因

  • 32位影刀的OpenCV计算精度溢出
  • 系统的“应用程序控制策略”拦截了图像处理库(NumPy/OpenCV)

解决

  • 使用64位影刀,OCR场景更稳定
  • 检查系统安全策略,把影刀加入白名单

坑3:图像识别没有区域设置

现象:全屏搜索效率低,容易误匹配。

解决:先用“截屏”指令框选目标区域,再对截图做OCR,缩小搜索范围。

坑4:图片样式变化导致识别失败

现象:昨天能识别的图片,今天识别不出来了。

原因:目标图像的颜色、大小、形状发生了变化。

解决:降低相似识别度阈值,或对图片做预处理(灰度+二值化)。

坑5:美团等App截图文本加密

现象:截图后OCR出来的文本是乱码或加密内容。

解决:部分App对文本做了渲染层加密,OCR无法直接识别。这类场景需要换方案——用UI树提取代替截图OCR。

十、完整实战:商品价格图片OCR采集

有些电商平台的商品价格是图片形式展示的(防爬),用XPath取不到。完整流程如下:

A_Main(主流程)
├─ 【Step 1:打开商品详情页】
│   ├─ 打开网页(商品URL)
│   └─ 等待页面加载
│
├─ 【Step 2:截图价格区域】
│   ├─ 捕获价格图片元素 → 价格元素
│   ├─ 网页截图(截图区域=网页元素, 目标元素=价格元素)
│   └─ 保存到 C:tempprice_{{timestamp}}.png
│
├─ 【Step 3:图片预处理(Python)】
│   ├─ 执行Python代码:
│   │   ├─ 转灰度 + 二值化 + 锐化
│   │   └─ 输出:处理后的图片路径
│   └─ 输出变量:processed_path
│
├─ 【Step 4:OCR识别】
│   ├─ OCR文字识别(
│   │   图片路径=processed_path,
│   │   识别引擎=百度OCR,  # 价格数字要求准确率高
│   │   识别语言=中英混合
│   │ )
│   └─ 输出变量:price_text
│
├─ 【Step 5:提取数字】
│   └─ 执行Python代码(正则提取数字):
│       import re
│       match = re.search(r'[d.]+', price_text)
│       price = float(match.group()) if match else 0print(price)
│
└─ 【Step 6:写入Excel】
    └─ 追加一行数据到表格([商品名称, price, 采集时间])

推荐资源

  1. 影刀官方帮助中心搜索“截屏”和“网页截图”有完整指令文档
  2. 影刀“配置AI引擎”文档:配置百度/腾讯OCR的API Key
  3. ddddocr GitHub:https://github.com/sml2h3/ddddocr
  4. 影刀开发者社区搜“OCR”有大量踩坑记录
热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:影刀RPA截图OCR实战:从验证码识别到表格数据提取要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://developer.volcengine.com/articles/7657452119238787126
文字识别

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-03 20:42
AI驱动的员工英语口语教练Lucida

LucidaAI是一款面向企业的AI英语口语教练,通过实时对话提供发音、语法、词汇和流利度的个性化反馈。采用端到端加密并支持合规定制,定价策略注重普及化,旨在以低成本提升团队英语沟通能力。

AI热点2026-07-03 20:42
Screenshot2Code:截图转代码工具

Screenshot2Code工具能够从截图中自动识别代码,并将其转换为可直接运行的代码。支持Python、HTML及API接口信息提取,帮助开发者快速复用他人分享的代码片段,从而显著提升工作效率。这个工具极大简化了代码复用过程。

AI热点2026-07-03 20:42
SpeakStruct 语音转结构化数据 可自定义模板

SpeakStruct通过可自定义模板将语音转换为结构化数据,适用于会议记录、客户通话等场景。核心功能包括自定义模板、准确转录和随处捕捉,使口语信息直接转化为可用的数据资产。

AI热点2026-07-03 20:41
AI驱动语音治疗应用 IzzyAI

IzzyAI是一款AI驱动的语音治疗应用,提供全天候服务。通过智能治疗师头像互动,系统评估并治疗五种常见语音语言障碍,融合语音与面部识别技术给予实时反馈。内置综合评估、个性化练习、进展报告及支持性社区,提升治疗效果。

延伸阅读