本期主题:
python通过有道智云API实现文本翻译
往期链接:
使用官方API的原理十分简单,实际上就是
按照官方要求的格式,将需要翻译的文本填充好,使用官方提供的API接口发过去
就是在有道智云的官网上申请一个ID和KEY,然后使用他们的产品,具体步骤:
1.登录 有道智云官网,注册账户;
2.选择 自然语言翻译服务 下面的 文本翻译,然后 创建应用
3. 创建应用时选择 文本翻译,接入方式选择 API,应用名称按自己喜好随便填
4.前面三步完成后,环境基本已经搞定了,能获取到一个 应用ID 和 应用秘钥,这两个东西是关键,后面我们能够使用上
关于接口的使用,没有比官方文档更好的说明了,直接上官方文档链接,有道智云文本翻译服务
import requests
import time
import hashlib
import uuid
youdao_url = 'https://openapi.youdao.com/api' # 有道api地址
# 需要翻译的文本'
translate_text = "how are you!"
print("需要翻译的文本:"+translate_text)
# 翻译文本生成sign前进行的处理
input_text = ""
# 当文本长度小于等于20时,取文本
if(len(translate_text) <= 20):
input_text = translate_text
# 当文本长度大于20时,进行特殊处理
elif(len(translate_text) > 20):
input_text = translate_text[:10] + str(len(translate_text)) + translate_text[-10:]
time_curtime = int(time.time()) # 秒级时间戳获取
app_id = '这里填你们自己的应用id' # 应用id
uu_id = uuid.uuid1() # 随机生成的uuid数,为了每次都生成一个不重复的数。
salt = str(uu_id)
app_key = '这里填你们自己的应用秘钥' # 应用密钥
sign = hashlib.sha256((app_id + input_text + salt + str(time_curtime) + app_key).encode('utf-8')).hexdigest() # sign生成
data = {
'q':translate_text, # 翻译文本
'from':"en", # 源语言
'to':"zh-CHS", # 翻译语言
'appKey':app_id, # 应用id
'salt':salt, # 随机生产的uuid码
'sign':sign, # 签名
'signType':"v3", # 签名类型,固定值
'curtime':time_curtime, # 秒级时间戳
}
r = requests.get(youdao_url, params = data).json() # 获取返回的json()内容
# print("err_code: " + r["errorCode"]) #获取翻译的err_code
print("翻译后的结果:" + r["translation"][0]) # 获取翻译内容