吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1996|回复: 9
收起左侧

[Python 原创] 调用百度云自动批量识别辽事通疫苗接种信息

[复制链接]
w3812247 发表于 2022-12-29 08:24
本帖最后由 w3812247 于 2022-12-29 08:25 编辑

最近有个朋友张伟的公司需要统计一下公司所有人的疫苗接种情况,大家都把截图传给了张伟,但是一个一个进行统计真的是太慢了,于是张伟就找到了我。
这个文字识别调用的是百度云的,请求过于频繁可能会拒绝访问一小会,大家可以根据需要对代码进行改造,把识别过的移入到另一个文件夹中,这里仅给大家提供一个思路。
[Python] 纯文本查看 复制代码
import requests
import base64
import time

def ocr(img_path: str) -> list:
    '''
    根据图片路径,将图片转为文字,返回识别到的字符串列表

    '''
    # 请求头
    #time.sleep(10)
    headers = {
        'Host': 'cloud.baidu.com',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.76',
        'Accept': '*/*',
        'Origin': 'https://cloud.baidu.com',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Dest': 'empty',
        'Referer': 'https://cloud.baidu.com/product/ocr/general',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    }
    # 打开图片并对其使用 base64 编码
    with open(img_path, 'rb') as f:
        img = base64.b64encode(f.read())
    data = {
        'image': 'data:image/jpeg;base64,'+str(img)[2:-1],
        'image_url': '',
        'type': 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic',
        'detect_direction': 'false'
    }
    # 开始调用 ocr 的 api
    response = requests.post(
        'https://cloud.baidu.com/aidemo', headers=headers, data=data)

    # 设置一个空的列表,后面用来存储识别到的字符串
    ocr_text = []

    result = response.json()['data']
    
    if isinstance(result,dict):
        if not result.get('words_result'):
            return []
        # 将识别的字符串添加到列表里面
        for r in result['words_result']:
            text = r['words'].strip()
            ocr_text.append(text+"####")
        # 返回字符串列表
    return ocr_text


'''
img_path 里面填图片路径,这里分两种情况讨论:
第一种:假设你的代码跟图片是在同一个文件夹,那么只需要填文件名,例如 test1.jpg (test1.jpg 是图片文件名)
第二种:假设你的图片全路径是 D:/img/test1.jpg ,那么你需要填 D:/img/test1.jpg
'''
import os
dirs = os.listdir(r'D:\1ocr') #疫苗接种截图目录
#print(dirs)
for dir in dirs:
    filepath = "D:\\1ocr\\"+dir
   
    img_path = filepath
    # content 是识别后得到的结果
    content = "".join(ocr(img_path))
    # 输出结果
   
    if len(content)>1:
        strname = content.split("被接种者姓名")
        if len(strname)>1:
            strname = str(strname[1])[0:10]
            strname = strname.replace("#","").replace("年龄","")
            print(strname)
            strlast = content.split("/")
            strlastlen = len(strlast)
            strri = str(strlast[strlastlen-1])[0:2]
            stryue = strlast[strlastlen-2]
            strnian = str(strlast[strlastlen-3])[-4:]
            #print(len(strlast))
            #print(str(strlast[strlastlen-1])[0:2]) #日
            #print(strlast[strlastlen-2]) #月
            #print(str(strlast[strlastlen-3])[-4:]) #年
            print ("最后一次接种:",strnian+"-"+stryue+"-"+strri)

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

freshegg 发表于 2022-12-29 11:14
张伟是沈阳哪个公司的
 楼主| w3812247 发表于 2022-12-29 12:09
ExPensive 发表于 2022-12-29 12:29
永无止境000 发表于 2022-12-29 16:17
学习学习
freshegg 发表于 2022-12-29 17:40
w3812247 发表于 2022-12-29 12:09
为啥非得是沈阳的呢,哈哈

理解有误,回帖有误,哈哈哈
ttsdy 发表于 2022-12-29 18:29
好好学习
constwm 发表于 2022-12-30 08:51
学习学习
nullable 发表于 2023-1-2 14:28
看到这儿,我只能说谢谢张伟的朋友分享代码
ljwwwcr 发表于 2023-1-5 15:50
谢谢分享代码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表