1.目的

因为影刀的ocr需要付费,虽然也花不了多少,但是蚊子再小也是肉,所以打算搞这个这个

2. 常见OCR场景与需求分析

  • 单文件下载(图片)
  • 批量验证(多文件、分页内容、爬虫抓取)
  • 需要身份验证的识别(带Cookie/Token)

3. 核心库与工具选择

  • 内置库:ddddocr
  • 第三方库:requestsaiohttp(异步)
  • 浏览器自动化:影刀RPA处理复杂场景

4. python代码示例

import ddddocr
import cv2
import os

def main(params=None):
    """
    带OCR功能的参数调试版本
    """
    print("=== 开始执行OCR识别 ===")
    print(f"接收到的参数: {params}")
    print(f"参数类型: {type(params)}")
    
    try:
        # 分析参数并确定图像路径
        image_path = r'D:\桌面\2.png'  # 默认路径
        
        if params is not None:
            if isinstance(params, str):
                print("参数为字符串,作为图像路径")
                image_path = params
            elif isinstance(params, dict) and 'image_path' in params:
                print("参数为字典,使用image_path键值")
                image_path = params['image_path']
            elif hasattr(params, 'image_path'):
                print("参数对象包含image_path属性")
                image_path = params.image_path
            else:
                print("参数格式不支持,使用默认路径")
        else:
            print("参数为None,使用默认路径")
        
        print(f"最终图像路径: {image_path}")
        
        # 检查文件是否存在
        if not os.path.exists(image_path):
            error_msg = f"文件不存在: {image_path}"
            print(f"错误: {error_msg}")
            return error_msg
        
        print("文件存在,开始OCR识别...")
        
        # 执行OCR识别
        ocr = ddddocr.DdddOcr()
        with open(image_path, 'rb') as f:
            result = ocr.classification(f.read())
        
        print(f"OCR识别结果: {result}")
        
        # 返回结果
        return {
            "status": "success",
            "image_path": image_path,
            "ocr_result": result,
            "params_received": str(params),
            "params_type": str(type(params))
        }
        
    except Exception as e:
        error_msg = f"处理过程中出现错误: {str(e)}"
        print(f"错误: {error_msg}")
        return error_msg

5. 实战案例演示

图片OCR

5.1 主流程

5.2python模块(将步骤三中的代码粘贴至此即可)

前提:需安装ddddocr模块

点击python包管理

输入ddddocr下载

安装完成后,新建python模块

将步骤三的数据复制至此

然后点击运行,可以查看验证码识别了出来

更多推荐