影刀RPA截图与OCR文字识别实战
作者:林焱
前言
有个学员问我:"网页上的数据没有DOM结构,全是图片,怎么抓?"我就知道,他遇到了OCR场景。

OCR(Optical Character Recognition,光学字符识别)就是从图片里提取文字。影刀自带OCR能力,配合截图指令,能解决很多传统元素捕获解决不了的问题。
一、OCR的适用场景
- 网页数据是图片格式(验证码、图表、扫描件)
- Canvas渲染的数据看板,元素捕获抓不到
- 桌面老软件,UI控件无法识别
- PDF扫描件,需要提取文字
- 截图存档的同时提取关键信息
二、截图指令详解

截图方式
全屏截图:拍下整个屏幕。适合需要全局判断的场景。
区域截图:指定坐标范围截图。适合精确提取某个区域。
拼多多店群自动化报活动上架!
元素截图:对某个网页元素截图。适合只关心特定内容。
窗口截图:对某个窗口截图。适合桌面应用场景。

截图后干什么
- 存入文件 → 作为流程运行的日志/证据
- 传给OCR指令 → 提取文字
- 传给图像识别指令 → 判断状态(比如识别"成功"二字是否存在)
三、OCR文字提取
基本流程
截图(指定区域) → OCR识别 → 得到文本 → 后续处理

比如从一张价格图表里提取价格:
区域截图(价格数字所在区域)→ OCR识别 → 得到"¥99.90"
→ 文本清理(去掉¥符号)→ 文本转数字 → 得到99.90
OCR的准确性
影刀自带的OCR在清晰、标准字体、黑白对比度高的图片上准确率很高(95%+)。但以下情况会降低准确率:
- 花体/艺术字体:标准OCR模型没训练过
- 低分辨率图片:文字模糊,识别困难
- 复杂背景:文字和背景颜色接近
- 旋转/倾斜文字:需要预处理扶正
- 手写体:大部分OCR对手写体支持不好
提高OCR准确率的技巧

1. 截图区域尽量精确。不要把整个网页截图丢给OCR——区域越大,干扰越多。精确框出目标文字区域。
2. 预处理图片。如果背景复杂,先截图后用Python的PIL库将图片二值化(黑白化),提高对比度后再OCR。
3. 对结果做校验。识别出来后,用简单的规则验证:价格应该是数字格式、手机号应该是11位数字、日期应该符合格式。不符合的重新截图识别或记录异常。
4. 多点采样对比。如果数字特别关键(比如金额),对同一个区域截两次图分别OCR,结果一致才采信。不一致就标记为需人工确认。
四、实战案例:验证码识别

1. 截图(验证码图片区域)
2. OCR识别 → 得到验证码文本
3. 如果不确定(识别结果包含?或长度不对):
显示提示框"验证码无法自动识别,请手动输入"
等待用户输入
4. 输入识别结果(或用户手动输入的结果)
5. 提交
诚实告知:简单验证码(纯数字、无干扰线)OCR准确率在70-80%。复杂验证码(扭曲、重叠、背景干扰)基本无能为力。别指望OCR解决所有验证码问题——打码平台或人工介入才是正道。
五、实战案例:监控看板数据变化
场景:公司有一个实时数据看板(用ECharts渲染),需要每小时记录一次关键指标。
用元素捕获拿不到Canvas上的数据,OCR方案:

每小时执行一次:
1. 打开数据看板网页
2. 等待加载完成
3. 对"总销售额"数字区域截图
4.
[video(video-3bajSYIv-1785344285375)(type-csdn)(url-https://live.csdn.net/v/embed/526817)(image-https://v-blog.csdnimg.cn/asset/1d3c3709da119dd8c13ab01e9b282520/cover/Cover0.jpg)(title-TEMU店群矩阵自动化运营核价报活动)]
5. OCR识别 → 得到销售额
6. 写入Excel(时间、销售额)
六、图像识别(非文字)
除了文字,影刀还支持图像识别——屏幕截图与目标图片比对。
指令"查找图片":在屏幕截图里找到目标小图片的位置。
适用场景:

- 判断某个按钮/图标是否存在(比文字OCR更直观)
- 定位按钮坐标(配合鼠标模拟操作)
- 页面状态判断(比如绿色灯=正常,红色灯=异常)
注意事项:目标图片的尺寸要和屏幕上的实际尺寸一致。如果屏幕分辨率变了,可能需要重新截图做模板。
七、总结
OCR和图像识别是RPA的"视力"——当元素捕获这个"透视眼"失效时,"视力"就是后备方案。
优先用元素捕获(快、准、稳),元素捕获失败用OCR(慢一些但能解决问题),OCR也失败用图像识别+鼠标模拟(最后的武器)。
下一篇讲JSON数据处理——API调用返回的数据几乎都是JSON格式,这是走向高级自动化的第一步。

作者:林焱
影刀RPA深耕实践者,致力于让每个普通人都能学会自动化


210

被折叠的 条评论
为什么被折叠?



