阿里云 通用文字识别 请求代码 python
时间: 2023-10-25 21:00:39 浏览: 92
基于python的图片文字识别。
5星 · 资源好评率100%
以下是使用 Python 发送阿里云通用文字识别 API 请求的代码示例:
```python
import urllib
import urllib.request
import time
import json
import base64
import hmac
import hashlib
import random
import string
# 阿里云通用文字识别 API 地址
host = 'https://ocrapi-ugc.taobao.com'
# 请求路径
path = '/ocrservice/ugc'
# 阿里云 AccessKey ID 和 AccessKey Secret
access_key_id = 'your_access_key_id'
access_key_secret = 'your_access_key_secret'
# 构造请求参数
params = {
'appkey': 'your_appkey',
'timestamp': str(int(time.time())),
'v': '2.0',
'format': 'json',
'platform': 'python',
'ocr_type': 'ocr_normal',
'img_url': 'https://your_image_url.jpg' # 或者使用 img_data 代替 img_url
}
# 如果使用本地图片文件,可以使用以下代码
# with open('your_image_file.jpg', 'rb') as f:
# img_data = base64.b64encode(f.read()).decode('utf-8')
# params['img_data'] = img_data
# 构造请求签名
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = ''
for k, v in sorted_params:
sign_str += k + str(v)
h = hmac.new(access_key_secret.encode('utf-8'), sign_str.encode('utf-8'), hashlib.sha1)
sign = base64.encodebytes(h.digest()).strip().decode('utf-8')
params['sign'] = sign
# 构造请求头
headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection': 'keep-alive'
}
# 发送请求
url = host + path
data = urllib.parse.urlencode(params).encode('utf-8')
req = urllib.request.Request(url, data=data, headers=headers)
response = urllib.request.urlopen(req)
result = json.loads(response.read().decode('utf-8'))
# 输出识别结果
if result['success']:
print(result['data']['ocr_result'])
else:
print(result['errorMsg'])
```
其中,需要将代码中的 `your_access_key_id`、`your_access_key_secret`、`your_appkey` 和 `https://your_image_url.jpg` 替换成自己的阿里云 AccessKey ID、AccessKey Secret、应用 AppKey 和图片 URL。如果使用本地图片文件,可以将 `img_url` 替换成 `img_data`,并将图片文件路径替换成 `with open('your_image_file.jpg', 'rb') as f:` 后面的路径。
阅读全文