本期主题:
python通过有道智云API实现文本翻译


往期链接:


1.原理

使用官方API的原理十分简单,实际上就是按照官方要求的格式,将需要翻译的文本填充好,使用官方提供的API接口发过去

2.操作步骤

1.申请应用以及ID、key

就是在有道智云的官网上申请一个ID和KEY,然后使用他们的产品,具体步骤:

1.登录 有道智云官网,注册账户;
2.选择 自然语言翻译服务 下面的 文本翻译,然后 创建应用
在这里插入图片描述
3. 创建应用时选择 文本翻译,接入方式选择 API,应用名称按自己喜好随便填
在这里插入图片描述
4.前面三步完成后,环境基本已经搞定了,能获取到一个 应用ID应用秘钥,这两个东西是关键,后面我们能够使用上

2.接口的使用

关于接口的使用,没有比官方文档更好的说明了,直接上官方文档链接,有道智云文本翻译服务

3.代码示例

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])   # 获取翻译内容

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐