使用python调用腾讯AI开放平台手写体OCR的API
程序员文章站
2023-12-22 15:50:16
...
使用python调用腾讯AI开放平台手写体OCR的API
我有一个识别简单验证码的需求, 要求免费. 所以找到了腾讯AI开放平台手写体OCR, 我选择实现方式是先把验证码图片保存本地, 然后把图片的base64编码数据作为参数发送.
在网上看了看python实现签名算法, 结果在我这里实现不了, 所以借鉴别人的方法自己改了改, 希望对你有用
下面是参数要求
请求参数
响应参数
接口
代码
import hashlib
import random
import string
import time
from urllib.parse import quote, urlencode
import requests
import base64
# 本地图片路径
file = "1.jpg"
with open(file, 'rb') as f:
image = base64.b64encode(f.read())
# 时间戳
time_stamp = int(time.time())
# 获得随机字符串
nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))
# 你应用的APPID和APPKEY
APP_KEY = "XXXXXX"
app_id = "111111"
# 所有参数(sign除外)
params = {
'app_id': app_id,
'time_stamp': time_stamp,
'nonce_str': nonce_str,
'image': image,
}
# 处理参数
before_sign = ''
params_new = {}
for key in sorted(params):
params_new[key] = params[key]
before_sign += urlencode(params_new)
before_sign += f"&app_key={APP_KEY}"
# 对获得的before_sign进行MD5加密
sign = hashlib.md5(before_sign.encode("utf-8")).hexdigest().upper()
# 将请求签名添加进参数字典
params["sign"] = sign
url = "https://api.ai.qq.com/fcgi-bin/ocr/ocr_handwritingocr"
req = requests.post(url, data=params)
print(req.text)