吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19979|回复: 212
收起左侧

[原创工具] 【重制GUI版】OCR识别健康码截图,保存到Excel

    [复制链接]
d8349565 发表于 2022-4-8 18:08
本帖最后由 d8349565 于 2022-5-12 08:53 编辑

5月12日补充:
access_token失效,免费提供一个新的:
24.8260976b8f7640ae23b00d1495e7ddbc.2592000.1654908506.282335-23539899



4月16日 补充:
部分小伙伴说调用失败,原因是内置的百度ocr api同一时间最多支持2个设备调用,多出的设备会调用失败,建议自行获取token保存到方案中。
QPS(query per second)指每秒向服务发送的请求数量峰值,相当于每个API接口每秒可以允许请求的并发上限量

image.png

健康码批量识别GUI版(4月11日超级更新)

“专业的IT人员不做繁琐的日常文件管理工作,专业的白领也负担不起软件定制与维护”
以上大概就是我开始自学Python编程的原因吧!

一、软件介绍

​        基于公司内同事的需求,制作了一个简单的Python代码,便于高效的收集健康码截屏中的文本信息,但是仍有很多不足,所以花了几天时间进行整理,重新制作了一版带有GUI界面的软件。(也可以用于健康码以外的同类工作)

主要功能

  1. 调用百度【通用文字识别(标准版)】对图片进行ocr识别,将结果返回到【结果输出框】;
  2. 自定义正则表达式,从结果中获取需要的文本内容;(可设置在正则表达式返回的结果中选取第几个文本)
  3. 完成以上调试后,可将方案保存到本地的 '***.ff' 文件;
  4. 右键点击进度条,可对文件夹内的图片批量执行ocr、正则表达式获取,保存到Excel中;(最后一列为图片文件的超链接)
  5. 其他功能详见下图,<u>红色文本为介绍,蓝色为操作指导</u>。

界面介绍

image-20220411183104482

二、操作指导GIF

设置默认文件夹

设置默认文件夹

识别图片、正则获取

识别图片、正则获取

保存方案

保存方案

批量执行

批量执行




下载地址更新:
https://leezfy.lanzouf.com/iJDoM03123pa
密码:21q3



------------------------------------------------------------------------------------------------------
4-10 更新
花了好几天时间,根据大家的需求对程序进行了GUI制作,但是目前卡在了这几个问题上:
1、wxpython进行长时间运行时会导致未响应,批量操作执行完成之后才能恢复;
2、Pyinstaller导出了非常多不相关的库,体积巨大。

应该块要做好了
GUI样式如下:



------------------------------------------------------------------------------------------------------
软件介绍
    最近听到小伙伴在讨论目前防疫政策下,天天都要收集健康码截图,然后要一个个识别,手工记录,非常繁琐且耗时,然后我就制作了一个针对此业务场景的软件。

原理介绍
    1、申请百度OCR识别token,调用SDK对每张图片逐一识别,返回message;(软件中已使用我自己的token)
    2、将百度OCR返回的列表转换为一个字符串,使用re正则表达式逐一获取姓名、截屏时间、末次核酸检测时间(人事部同事说只需要这几个信息);
    3、使用dict和pandas将数据转存到Excel文件中。

演示GIF



下载地址
[color=rgba(0, 0, 0, 0.85)]「OCR获取健康码信息」https://www.aliyundrive.com/s/g3StywGKaqp 提取码: 3w7s
[color=rgba(0, 0, 0, 0.85)]





以上,仅供参考交流,如果大家有需求,也可以提供源代码。
[color=rgba(0, 0, 0, 0.85)]

点评

行程卡 (\d{4}.\d{1,2}.\d{1,2}) 1 (\d{2}:\d{2}:\d{2}) 1 [0-9][*\*\*\][0-9]{3,9} 1 ,([\u4e00-\u9fa5]{0,8}) 5 途经:(.+?)(注 1 截图效果间本帖168楼  发表于 2022-4-26 17:52
支持你!学以致用,  发表于 2022-4-9 11:59

免费评分

参与人数 50吾爱币 +53 热心值 +48 收起 理由
Sev_7 + 1 + 1 热心回复!
ouiazrael + 1 + 1 谢谢@Thanks!
阿木木不哭 + 1 + 1 我很赞同!
sfn + 1 + 1 用心讨论,共获提升!
蓦然回首 + 1 谢谢@Thanks!
nqldxz + 1 + 1 谢谢@Thanks!
盗水者 + 1 + 1 谢谢@Thanks!
房州波哥 + 1 感谢群主仍在关注跟帖
feihu1712 + 1 + 1 我很赞同!
outform + 1 + 1 我很赞同!
浮生半歇 + 1 谢谢@Thanks!
Levitate + 1 + 1 我很赞同!
xiangyiyi + 1 + 1 陕西一码通扫出来没有额外信息
456852jun + 1 + 1 谢谢@Thanks!
wlq127 + 1 + 1 我很赞同!
banfeng1314 + 1 + 1 用心讨论,共获提升!
weidechan + 1 鼓励转贴优秀软件安全工具和文档!
PingFana + 1 + 1 谢谢大哥
barry1204 + 1 + 1 谢谢@Thanks!
lyhjh + 1 + 1 我很赞同!
sqqqqq + 1 + 1 用心讨论,共获提升!
dadalala1999 + 1 + 1 热心回复!
tiger1985 + 1 + 1 谢谢@Thanks!
jgx + 1 + 1 我很赞同!
qiuqiu8083 + 1 + 1 谢谢@Thanks!
xingshizhuyi + 1 + 1 我很赞同!
54151319 + 1 + 1 我很赞同!
lazygoat644 + 1 + 1 谢谢@Thanks!
lyslxx + 1 + 1 我很赞同!
ME_idh + 1 + 1 我很赞同!
没事好好 + 1 + 1 我很赞同!
Xyzbb + 1 + 1 我很赞同!
axin1234 + 1 热心回复!
homehome + 1 + 1 紧跟跟着博士的脚印
jnez112358 + 1 + 1 谢谢@Thanks!
gqdsc + 1 好东西,不错不错
落红护花 + 3 + 1 复旦神人!赞!我哥哥也是那的,我以后也想去那里
醋醋 + 1 + 1 刚看了热搜。
fenger313 + 1 + 1 热搜的博士生是你吗?还是那个博士生用了你的代码
娟然俊逸 + 1 + 1 谢谢@Thanks!真的牛
风逝998 + 1 + 1 谢谢@Thanks!
dosky7865 + 1 + 1 我很赞同!
De蓝 + 1 + 1 热心回复!
key4479 + 1 + 1 今天人民日报中报道的就是你这个吗?太厉害了!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
nuxingxp + 1 + 1 我很赞同!
yirenjieqian + 1 谢谢@Thanks!
fisherpau + 1 + 1 用心讨论,共获提升!
为了青春 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chunmengrabbit + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| d8349565 发表于 2022-4-8 20:51
本帖最后由 d8349565 于 2022-4-8 20:53 编辑

xcl615 发表于 2022-4-8 18:47
楼主体验了一下,可以分享一下源码嘛,我可以优化一下

代码是中午午休写的,没怎么优化,比较乱
[Python] 纯文本查看 复制代码
import os
from aip import AipOcr
import re
from pandas import DataFrame
from easygui import diropenbox
from tqdm import tqdm
print('程序开始运行,进度如下:')
""" 你的 APPID AK SK """
APP_ID = '23539899'  # 申请应用获取的 ID,下同
API_KEY = '自行获取'
SECRET_KEY = '自行获取'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
path=diropenbox('请选择需要处理的文件夹')
filelist = os.listdir(path)  # 设定图片目录
result = []
for file in tqdm(filelist):
    a = {}
    file_path=f'{path}\\{os.path.basename(file)}'
    img = get_file_content('{}\\'.format(path) + file)
    message = client.basicGeneral(img)['words_result']
    x = [str(list(i.values())[0]) for i in message]
    x_str = ','.join(x).replace('(请尽快接种新冠疫苗)','')
    # 获取最新的检测时间
    核酸检测时间 = re.compile(r',((.){12})检测,').findall(x_str)
    num = len(核酸检测时间) - 1
    核酸检测时间 = 核酸检测时间[num][0]
    # 获取截屏时间
    time = re.compile(r',(2022-(.){5})').findall(x_str)
    num = len(time) - 1
    time = time[num][0]
    # 获取姓名
    name = re.compile(r',([\u4e00-\u9fa5]{2,4}),')
    name = name.findall(x_str)
    try:
        name.remove('场所码')
    except:
        pass
    a['截屏时间'] = time
    a['末次核酸检测时间'] = 核酸检测时间
    a['姓名'] = name[0]
    a['文件名'] = file
    a['文件夹名称'] = os.path.abspath(file)
    # print(' 截屏时间为:', time, ' 末次核酸检测时间为:', 核酸检测时间, '姓名为:', name[0],file)
    result.append(a)
print(result)

result=DataFrame(result).to_excel('result.xlsx')
os.startfile('result.xlsx')
input('程序运行完成')

免费评分

参与人数 2吾爱币 +4 热心值 +1 收起 理由
阿木木不哭 + 1 + 1 学习学习
Monitor + 3 我很赞同!

查看全部评分

Curry123 发表于 2022-4-8 18:37
我也想问,兄得,你就是那个博士吗?即将推广到全校?

免费评分

参与人数 1吾爱币 +1 收起 理由
d8349565 + 1 热心回复!

查看全部评分

Andrea 发表于 2022-4-8 18:31
哈哈哈哈,刚看了一个类似的新闻,让我小声问一句,你就是新闻里面的那个复旦博士吗?

免费评分

参与人数 1吾爱币 +1 收起 理由
d8349565 + 1 我很赞同!

查看全部评分

房州波哥 发表于 2022-4-26 17:47

行程卡正则表达式

本帖最后由 gcb119 于 2022-4-26 19:51 编辑

行程卡正则表达式


(\d{4}.\d{1,2}.\d{1,2})         1
(\d{2}:\d{2}:\d{2})         1
[0-9][*\][0-9]{6,9}         1
,([\u4e00-\u9fa5]{0,8})       5
途经:(.+?)(注                1

上面的是用带*备注的行程卡摸索出来的代码

无*的行程卡,或者带*

可以统一用下面的

(\d{4}.\d{1,2}.\d{1,2})         1
(\d{2}:\d{2}:\d{2})         1
[0-9][*\][0-9]{6,9}               1
,([\u4e00-\u9fa5]{7})          2
途经:(.+?)结果包含         1


bug一个,哪位大神能解决一下?
途径城市的文本换行后识别出来的换行处多出来了  ,       这个符号如何能预处理掉


身份证扫描件的正则表达式(输出结果的excel查找   ,   替换  确定即可:因为可能存在住址明细换行多出个标点符号   ,  )

姓名(.+?),性别              1
性别(.+?)民                  1
民族(.+?),出生              1
出生(.+?),住址              1
住址(.+?),公民身份       1
,([0-9X]{18})                 1

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
d8349565 + 1 + 1 我很赞同!

查看全部评分

 楼主| d8349565 发表于 2022-4-11 17:37
softsharing 发表于 2022-4-11 07:45
支付宝的健康码是通用的,那个正则表达式提取也不一样吧

正在制作一个新的万用版本,可自定义调整正则表达式,过几天应该会再发出来
jgx 发表于 2022-4-12 16:20
只能用卧槽来表示激动的心情了
sqqqqq 发表于 2022-4-11 22:17
d8349565 发表于 2022-4-11 22:10
你们能使用上就是最好,不然白忙活了

对我来说太有用了,目前已经成功,太感谢了。名字,身份证号,日期,时间点,检测结果,这些信息直接生成,之前几百个,人员数量每次都有变化,2个人要搞大半天,这直接编辑好图片顺序,瞬间就搞定了。提个小小的建议,生成的excel上面的标签能不能在软件里直接自定义,不改问题也不大,嘿嘿。

免费评分

参与人数 1吾爱币 +1 收起 理由
d8349565 + 1 本来准备添加表头的,但是我GUI界面没地方放了,想了想,就算了

查看全部评分

娟然俊逸 发表于 2022-4-9 08:23
真的牛 不符不行
swhyy 发表于 2022-4-8 20:13
楼主厉害 给你点赞
xcl615 发表于 2022-4-8 18:47
楼主体验了一下,可以分享一下源码嘛,我可以优化一下
ciker_li 发表于 2022-4-8 19:02
能分享源码吗?
房州波哥 发表于 2022-4-8 19:04
楼主辛苦了
这是坛子里另外一个OCR
https://www.52pojie.cn/thread-1605948-1-1.html
实测楼主的识别粤康码失败,
另,建议下一版更新时,用户可自定义自己的key,以避免用量大了以后,超标
房州波哥 发表于 2022-4-8 19:05
xcl615 发表于 2022-4-8 18:47
楼主体验了一下,可以分享一下源码嘛,我可以优化一下

支持高手优化
这是坛子里另外一个OCR神器,很好用
https://www.52pojie.cn/thread-1605948-1-1.html
kcb2006 发表于 2022-4-8 19:12
我我测试的健康码怎么识别不了
fgdzypf 发表于 2022-4-8 19:20
这么关管用?
落花萧然 发表于 2022-4-8 19:37
来了大佬?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-4 14:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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