文章目录
- 📯小哔哔
- ✏️注册有道智云
- ✏️咋滴调用?
- ✏️使用前的小操作
- ✏️源代码
专栏 |
---|
Python零基础入门篇🔥 |
Python网络蜘蛛🔥 |
Python数据分析 |
Django基础入门宝典🔥 |
小玩意儿🔥 |
Web前端学习 |
tkinter学习笔记 |
Excel自动化处理 |
📯小哔哔
各位久等了吧《小玩意儿》专栏它!@#¥%……&更新啦❗️❗️❗️
好久没更新《小玩意儿》专栏里的文章了,今天俺又回来啦💨
今天带给大家的是什么呢?没错,就是❗️❗️❗️什么呢?
开个小玩笑啦!今天带来的当然就是人人用了都说好的实用办公小脚本咯:批量将图片内容识别并写入Excel表格中❗️
具体咋用?咱们废话不多说,请各位看官往下look look👀
✏️注册有道智云
当然,咱们还没有写出将图片转为Excel表格的代码的实力,但是❗️❗️❗️,咱们可以调用API接口呀,你说这,有现成的咱就不费那个劲儿了,调用API接口就咔咔完事儿了~
- 我们需要调用有道智云平台上的API接口,注册好后进入即可看到如下页面👇
- 将鼠标移动到上方的产品服务,然后选择表格识别并点击
- 这时会跳到另一个界面,这时你可能不知所措,不过没关系,接着点击立即使用就好了😝
- 接下来就是一个浅浅的三步走战略,具体如下图所示👌
- 这时候按照网页给的提示,咔咔操作就完事儿了,最后点击一个小确定就O了,注意:服务器IP可以不写
- 最后在业务总览上,即可看到你所创建的应用,上面有两个重要的信息:应用ID和密匙
✏️咋滴调用?
这时候可能就有小伙伴问了:诶呀,做了这么多,到底咋滴调用呀呀呀呀……?
别急,哥手把脚教你,来,看下面的操作👇
- 重新点击光学字符识别服务——>表格识别,这时细心的小伙伴就会发现在右下方提供Java、Python、C#、PHP语言调用API接收的示例
- 我们这里以Python为例,点击查看,即可看到Python调用接口的代码(这时应该听到耳鸣般的掌声👏),但是,到了这,先别啷个激动,这些代码需要修改的哈,具体怎么改?请继续往下看
✏️使用前的小操作
想知道咋修改吗?就不告诉你,就不告诉你~略略略略~
咱们不用费这个劲儿去想,本小小博主👴已经为兄弟姐妹们改好啦,还做了一点小小的升级er(那就是批量)
- 首先,先练习一下快速Ctrl C和Ctrl V,将创建好的应用中给出的应用ID和密匙复制,粘贴到代码中
- 然后,将咱们的目标图片,放到同一个文件夹之中,修改path的路径为图片存放的文件夹路径
- 最后,运行一波,你会发现目标文件夹下的图片统统都被Excel了,而这些Excel表格文件的名字就是对应图片的名字。
- 特别注意⚠️我们在有道智云注册之后会发现有50💰,当然,这不是你的生活费,这是只能在平台上消费,而每转一张图片会话0.5💰,所以,大家合理使用哈❗️❗️❗️
- 具体运行结果看下图👇
✏️源代码
小说明:有一些复杂的表格图片可能会识别有误哦~😊
# -*- coding: utf-8 -*-
import uuid
import requests
import base64
import hashlib
import time
import json
import osYOUDAO_URL = 'https://openapi.youdao.com/ocr_table'
APP_KEY = ''
APP_SECRET = ''def truncate(q):if q is None:return Noneq_utf8 = q.decode("utf-8")size = len(q_utf8)return q_utf8 if size <= 20 else q_utf8[0:10] + str(size) + q_utf8[size - 10:size]def encrypt(signStr):hash_algorithm = hashlib.sha256()hash_algorithm.update(signStr.encode('utf-8'))return hash_algorithm.hexdigest()def do_request(data):headers = {'Content-Type': 'application/x-www-form-urlencoded'}return requests.post(YOUDAO_URL, data=data, headers=headers)def connect(img_path):f = open(img_path, 'rb') # 二进制方式打开图文件q = base64.b64encode(f.read()) # 读取文件内容,转换为base64编码f.close()data = {}data['type'] = '1'data['q'] = qdata['docType'] = 'excel' # excel相关数据data['signType'] = 'v3'curtime = str(int(time.time()))data['curtime'] = curtimesalt = str(uuid.uuid1())signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRETsign = encrypt(signStr)data['appKey'] = APP_KEYdata['salt'] = saltdata['sign'] = sign# 包含excel相关数据(base64字符串) jsonresponse = do_request(data)# json -- 字典# 拿到的是包含excel的base64的json字符串response_json = json.loads(response.text)# 提取数据excel_table_base64 = response_json.get('Result').get('tables')[0]return excel_table_base64def orc_excel(img_path, excel_path):excel_table_base64 = connect(img_path)# 将数据解码decoded = base64.b64decode(excel_table_base64)# 讲解码后的数据写入excel文件with open(excel_path, 'wb') as f:f.write(decoded)print('保存成功')if __name__ == '__main__':path = ''li_file = []for i in os.listdir(path):img_path = path + '/' + iexcel_path = rf'{path}/{i[:-4]}.xlsx'orc_excel(img_path, excel_path)print('转换结束!')