Python百度ai识别表格
通过借助百度ai的接口实现含表格图片的识别,并将表格内容返回为Excel文件。
- 获取Access Token
(1)有百度账号的直接登录百度ai,没有的注册在登录。
(2)然后创建应用,创建文字识别,选取功能

(3)创建完成之后点击管理应用,里面有相应的AK和SK

(4)获取Access Token
将得到的AK和SK替换进代码,输出的即为access_token
import requests
import json
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
res=response.json()
print(res['access_token'])
- 下面以一张图片为例,我们提取它里面的表格。
完整代码:
import requests
import base64
import json
import time
'''
表格文字识别(异步接口)
'''
class BaiduAi():
def __init__(self,file):
self.file=file #图片地址
def getAccess_token(self):
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
res = response.json()
self.access_token=res['access_token']
def getRequest_id(self):
# 二进制方式打开图片文件
request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request"
f = open(self.file, 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = self.access_token
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
request_id=list(response.json()["result"][0].values())
self.request_id=request_id[0]
def getExcel_url(self):
url1='https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result'
headers1 = {'content-type': 'application/x-www-form-urlencoded'}
body={'request_id': self.request_id,'result_type':'excel'} #这里的type可以选择josn和excel,我们选择excel
access_token = self.access_token
url1 = url1 + "?access_token=" + access_token
response1 = requests.post(url1, data=body, headers=headers1)
if response1:
print (response1.json())
if __name__=='__main__':
data='C:/Users/Administrator/Desktop/测试表格.png'
f1=BaiduAI(data)
f1.getAccess_token()
f1.getRequest_id()
f1.getExcel_url()
time.sleep(60) #由于这个ai识别需要一段时间,我们设置60s来等他获取结果
f1.getExcel_url()
运行结果:
最后点击网页下载,你也可以编写几行代码自动下载。
测试所用图片:

得到的Excel:

总结:对图片质量要求较高,且对于若要批处理的话,反馈结果时间间隔较长,得到的数据也不是很全。。。。(是因为免费吗。。。)
最后:我是小白不要喷我。

本文介绍了如何利用Python结合百度AI接口进行图片中的表格识别,并将识别内容导出为Excel文件。首先,需要注册并登录百度AI,创建应用获取AK和SK。然后,通过代码获取Access Token,使用该Token来识别含表格的图片,最终将识别出的表格内容转换成Excel格式。虽然图片质量高时效果较好,但批量处理时反馈时间较长,且数据完整性有限。

3万+

被折叠的 条评论
为什么被折叠?



