影刀RPA截图OCR实战:从验证码识别到表格数据提取
有次做拼多多采集,商品价格死活取不到——页面源码里压根没有数字,价格是渲染在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 0
│ print(price)
│
└─ 【Step 6:写入Excel】
└─ 追加一行数据到表格([商品名称, price, 采集时间])
推荐资源
- 影刀官方帮助中心搜索“截屏”和“网页截图”有完整指令文档
- 影刀“配置AI引擎”文档:配置百度/腾讯OCR的API Key
- ddddocr GitHub:
https://github.com/sml2h3/ddddocr - 影刀开发者社区搜“OCR”有大量踩坑记录
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:影刀RPA截图OCR实战:从验证码识别到表格数据提取要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点LucidaAI是一款面向企业的AI英语口语教练,通过实时对话提供发音、语法、词汇和流利度的个性化反馈。采用端到端加密并支持合规定制,定价策略注重普及化,旨在以低成本提升团队英语沟通能力。
Screenshot2Code工具能够从截图中自动识别代码,并将其转换为可直接运行的代码。支持Python、HTML及API接口信息提取,帮助开发者快速复用他人分享的代码片段,从而显著提升工作效率。这个工具极大简化了代码复用过程。
SpeakStruct通过可自定义模板将语音转换为结构化数据,适用于会议记录、客户通话等场景。核心功能包括自定义模板、准确转录和随处捕捉,使口语信息直接转化为可用的数据资产。
IzzyAI是一款AI驱动的语音治疗应用,提供全天候服务。通过智能治疗师头像互动,系统评估并治疗五种常见语音语言障碍,融合语音与面部识别技术给予实时反馈。内置综合评估、个性化练习、进展报告及支持性社区,提升治疗效果。
- 日榜
- 周榜
- 月榜
热点快看
