Python调用百度云API识别表格识别

1.首先我们展示一下效果

识别样板

在这里插入图片描述

识别效果

在这里插入图片描述

2.好嘞,我们开始(这个调用接口和别的API不一样,他需要用requests库请求三次)

我们先去创建一个属于我们的应用

在这里插入图片描述

之后我们去查看文档帮助

在这里插入图片描述

第一步我们获取access_token

在这里我把文件路径放在了函数里面,可以放在外面,也可以做一个循环,识别一个文件夹里面的所有图片。


```python
import requests
import json
import base64
import time

def get_access_token():
    client_id = '你的apikey'
    client_secret = '你的Secret Key'
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(
        client_id, client_secret)
    response = requests.get(host).text
    data = json.loads(response)
    access_token = data['access_token']
    return access_token
# 获取返回信息


``

第二步我们获取是否识别成功的json数据。

如果成功识别成功会给你一个request_id,用这个来获取excel表,也可以选择获取json数据(注意图片一点要转为base64编码,支持PNG、JPG、JPEG、BMP、TIFF、PNM、WebP)

#在这里我把文件路径放在了函数里面,可以放在外面,也可以做一个循环,识别一个文件夹里面的所有图片。
def get_info(access_token):

    request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request"
    # 二进制方式打开图片文件
    f = open('你需要识别的文件', 'rb')
    img = base64.b64encode(f.read())#base64编码
    params = {"image": img}
    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:
    #     print(response.json())
    data_1 = response.json()
    return data_1

在这里插入图片描述


第三步我们获取excel表。

如果你的result_type是excel,则会给你返回一个excel网页连接,如果是json,则会返回json数据

def get_excel(requests_id, access_token):
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    pargams = {
        'request_id': requests_id,
        'result_type': 'excel'
    }
    url = 'https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result'
    url_all = url + "?access_token=" + access_token
    res = requests.post(url_all, headers=headers, params=pargams)#访问链接获取excel下载页
    info_1 = res.json()['result']['ret_msg']
    excel_url=res.json()['result']['result_data']
    excel_1=requests.get(excel_url).content
    with open('识别结果.xls','wb+') as f:
        f.write(excel_1)
    print(info_1)

附上源代码

import requests
import json
import base64
import time

#获取access_token
def get_access_token():
    client_id = '你的apikey'
    client_secret = '你的Secret Key'   
     # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}'.format(
        client_id, client_secret)
    response = requests.get(host).text
    data = json.loads(response)
    access_token = data['access_token']
    return access_token
# 获取返回信息

#获取识别结果
def get_info(access_token):

    request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request"
    # 二进制方式打开图片文件
    f = open('你的文件', 'rb')
    img = base64.b64encode(f.read())#base64编码
    params = {"image": img}
    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:
    #     print(response.json())
    data_1 = response.json()
    return data_1

# 获取excel


def get_excel(requests_id, access_token):
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    pargams = {
        'request_id': requests_id,
        'result_type': 'excel'
    }
    url = 'https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result'
    url_all = url + "?access_token=" + access_token
    res = requests.post(url_all, headers=headers, params=pargams)#访问链接获取excel下载页
    info_1 = res.json()['result']['ret_msg']
    excel_url=res.json()['result']['result_data']
    excel_1=requests.get(excel_url).content
    with open('识别结果.xls','wb+') as f:
        f.write(excel_1)
    print(info_1)


def main():
    print('正在处理中请稍后')
    access_token = get_access_token()
    data_1 = get_info(access_token)
    try:
        requests_id = data_1['result'][0]['request_id']
        if requests_id != '':
            print('识别完成')
    except:
        print('识别错误')
    print('正在获取excel')
    time.sleep(10)#延时十秒让网页图片转excel完毕,excel量多的话,转化会慢,可以延时长一点
    get_excel(requests_id, access_token)

main()

3. 最后大家也可以结合opencv库,调用摄像头,拍照识别然后转化为excel,来减少自己的工作量,尤其是对那些需要根据文件录入excel的事情,都可以简化它

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
抱歉,我是一个语言模型,无法进行实际的编程操作。但是,我可以为您提供一些思路和参考。 首先,您需要注册百度翻译API并获取您的API密钥。然后,您可以使用Python中的requests库向API发送请求并获取响应。 以下是一些示例代码: ```python import requests # 设置请求参数 api_url = 'http://api.fanyi.baidu.com/api/trans/vip/translate' api_key = 'your_api_key' api_from = 'auto' api_to = 'en' text = '你好' # 发送请求并获取响应 response = requests.get(f'{api_url}?q={text}&from={api_from}&to={api_to}&appid={api_key}&salt=123') result = response.json() # 输出翻译结果 print(result['trans_result'][0]['dst']) ``` 对于物体识别,您需要使用百度AI开放平台的物体识别API。您可以使用相同的方法发送请求并获取响应。以下是一个示例代码: ```python import requests # 设置请求参数 api_url = 'https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general' api_key = 'your_api_key' api_secret = 'your_api_secret' image_url = 'https://www.example.com/image.jpg' # 发送请求并获取响应 response = requests.post(api_url, data={ 'access_token': f'{api_key}:{api_secret}', 'url': image_url }) result = response.json() # 输出识别结果 for item in result['result']: print(item['keyword']) ``` 请注意,以上代码仅供参考,您需要根据自己的需求和API文档进行适当的修改。同时,确保您已经获得了API密钥并进行了适当的授权和认证。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值