简介:本文详细介绍如何在按键精灵脚本中调用百度文字识别OCR服务,涵盖API接入、参数配置、错误处理及优化建议,助力开发者实现高效自动化文字提取。
在自动化测试、数据采集、游戏辅助等场景中,文字识别(OCR)是核心功能之一。按键精灵作为自动化脚本工具,传统上依赖本地OCR库(如Tesseract),但存在识别率低、语言支持有限等问题。百度文字识别OCR服务基于深度学习算法,支持中英文、数字、表格、手写体等多种场景,识别准确率可达95%以上。通过集成百度OCR,按键精灵脚本可实现更高效、精准的文字提取,尤其适用于验证码识别、游戏文本抓取、表单自动化等场景。
访问百度智能云官网,完成实名认证并开通“文字识别”服务。新用户可领取免费额度(如通用文字识别每日500次)。
在百度智能云控制台进入“文字识别”服务,点击“管理API”创建应用,获取API Key和Secret Key。这两个密钥用于生成访问令牌(Access Token),是调用OCR API的凭证。
百度OCR提供多种接口,常见类型包括:
根据需求选择接口,例如游戏文本抓取推荐使用“通用文字识别”。
百度OCR API使用OAuth2.0授权,需通过API Key和Secret Key获取Token。按键精灵可通过HTTP请求库(如WinHTTP)实现:
' 按键精灵VBS示例:获取百度OCR Access TokenFunction GetAccessToken(apiKey, secretKey)Dim url, http, responseurl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" & apiKey & "&client_secret=" & secretKeySet http = CreateObject("MSXML2.XMLHTTP")http.Open "GET", url, Falsehttp.Sendresponse = http.responseText' 解析JSON响应(需按键精灵支持JSON解析,或使用字符串分割)Dim jsonSet json = JSON.Parse(response) ' 假设有JSON解析库GetAccessToken = json.access_tokenEnd Function
注意:按键精灵原生不支持JSON解析,可通过以下方式处理:
Split函数分割字符串提取access_token。libcurl)或Python脚本作为中间层。获取Token后,构造HTTP请求调用OCR接口。以“通用文字识别”为例:
' 按键精灵VBS示例:调用百度OCR接口Function RecognizeText(imagePath, accessToken)Dim url, http, imageData, boundary, postData, response' OCR API地址(通用文字识别)url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" & accessToken' 读取图片为二进制(需按键精灵支持文件读取)imageData = ReadFileBinary(imagePath) ' 自定义函数' 构造multipart/form-data请求boundary = "---------------------------" & CreateObject("Scriptlet.FileSystem").CreateTextFile("temp").LinepostData = "--" & boundary & vbCrLf & _"Content-Disposition: form-data; name=""image""; filename=""image.jpg""" & vbCrLf & _"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _imageData & vbCrLf & _"--" & boundary & "--"Set http = CreateObject("MSXML2.XMLHTTP")http.Open "POST", url, Falsehttp.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & boundaryhttp.Send postDataresponse = http.responseText' 解析JSON响应(示例简化)Dim resultresult = ParseJSONForText(response) ' 自定义解析函数RecognizeText = resultEnd Function
关键点:
Content-Type: multipart/form-data。words_result数组中的words字段。OCR调用可能因网络、配额或图片质量失败,需添加错误处理:
' 错误处理示例On Error Resume NextDim texttext = RecognizeText("screenshot.png", accessToken)If Err.Number <> 0 ThenTracePrint "OCR调用失败: " & Err.Description' 重试逻辑If RetryCount < 3 ThenDelay 1000RetryCount = RetryCount + 1text = RecognizeText("screenshot.png", accessToken)End IfEnd IfOn Error GoTo 0
Threshold处理(可通过OpenCV或按键精灵插件实现)。
Dim logFilelogFile = "ocr_log.txt"Function LogCall(imagePath, result)Dim fso, fileSet fso = CreateObject("Scripting.FileSystemObject")Set file = fso.OpenTextFile(logFile, 8, True) ' 8=追加模式file.WriteLine Now & " | " & imagePath & " | " & resultfile.CloseEnd Function
按键精灵支持多线程,可并行调用OCR加速处理:
' 启动多线程调用OCRSub StartOCRThreads()Dim threads(2)threads(0) = RunThread("OCRThread1")threads(1) = RunThread("OCRThread2")' 等待线程结束Do While threads(0).IsRunning Or threads(1).IsRunningDelay 100LoopEnd SubSub OCRThread1()Dim texttext = RecognizeText("image1.png", accessToken)' 处理结果End Sub
regsvr32 winhhttp.dll。libcurl的按键精灵插件)。通过集成百度OCR,按键精灵脚本可实现以下高级功能:
下一步建议:
FindPic)的结合,构建混合自动化方案。通过本文的指导,开发者可快速实现按键精灵与百度OCR的集成,为自动化项目注入AI能力,提升效率与准确性。