【敲级实用】:某小伙写了一个的办公脚本后~变精神了~

专栏
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 os

YOUDAO_URL = 'https://openapi.youdao.com/ocr_table'
APP_KEY = ''
APP_SECRET = ''


def truncate(q):
    if q is None:
        return None
    q_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'] = q
    data['docType'] = 'excel'   # excel相关数据
    data['signType'] = 'v3'
    curtime = str(int(time.time()))
    data['curtime'] = curtime
    salt = str(uuid.uuid1())
    signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET
    sign = encrypt(signStr)
    data['appKey'] = APP_KEY
    data['salt'] = salt
    data['sign'] = sign

    # 包含excel相关数据(base64字符串)    json
    response = 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_base64

def 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 + '/' + i
        excel_path = rf'{path}/{i[:-4]}.xlsx'
        orc_excel(img_path, excel_path)
    print('转换结束!')
  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值