python调用有道翻译API进行翻译
步骤
- python调用有道翻译API进行翻译
- 准备调用API所需的APPID以及秘钥
- 1.有道智云注册账号
- 2.有道智云注册账号
- 3.创建实例,绑定应用
- 4.查看官方文档
- python实现对有道翻译API的调用
准备调用API所需的APPID以及秘钥
1.有道智云注册账号
有道 api 接口调用官方网站:有道智云
2.有道智云注册账号
创建应用,获取【应用密钥和id】
然后就可以看到应用密钥和应用 id 了,这两个是我们调用它的 api 所需要的。
服务器 IP 设置的话,就可以防止被其它人用了。
3.创建实例,绑定应用
4.查看官方文档
官方帮助文档:文档链接
python实现对有道翻译API的调用
实现中英互译的功能,其他功能可参考官方文档更改参数设置。
def youdaoTranslate(translate_text,flag=1):
'''
:param translate_text: 待翻译的句子
:param flag: 1:原句子翻译成英文;0:原句子翻译成中文
:return: 返回翻译结果
'''
youdao_url = 'https://openapi.youdao/api' # 有道api地址
# 翻译文本生成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 = "xxxxxx" # 自己的应用id
uu_id = uuid.uuid4() # 随机生成的uuid数,为了每次都生成一个不重复的数。
app_key = "xxxxx" # 自己的应用密钥
sign = hashlib.sha256(
(app_id + input_text + str(uu_id) + str(time_curtime) + app_key).encode('utf-8')).hexdigest() # sign生成
data = {
'q': translate_text, # 翻译文本
'appKey': app_id, # 应用id
'salt': uu_id, # 随机生产的uuid码
'sign': sign, # 签名
'signType': "v3", # 签名类型,固定值
'curtime': time_curtime, # 秒级时间戳
}
if flag:
data['from'] = "zh-CHS" # 译文语种
data['to'] = "en" # 译文语种
else:
data['from'] = "en" # 译文语种
data['to'] = "zh-CHS" # 译文语种
r = requests.get(youdao_url, params=data).json() # 获取返回的json()内容
# print("翻译后的结果:" + r["translation"][0]) # 获取翻译内容
return r["translation"][0]
记录备用
发布评论