一、文档
https://ai.youdao.com/DOCSIRMA/html/trans/api/wyfy/index.html
二、示例
# -*- coding: utf-8 -*-
import sys
import uuid
import requests
import hashlib
import time
from importlib import reload
import json
import time
reload(sys)
# 有道翻译地址
YOUDAO_URL = 'https://openapi.youdao.com/translate_html'
# 替换为您的应用ID
APP_KEY = ''
# 替换为您的密钥
APP_SECRET = ''
''' sha256加密 '''
def encrypt(signStr):
hash_algorithm = hashlib.sha256()
hash_algorithm.update(signStr.encode('utf-8'))
return hash_algorithm.hexdigest()
''' 判断长度 '''
def truncate(q):
if q is None:
return None
size = len(q)
return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size]
''' 开始翻译 '''
def do_request(data):
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
return requests.post(YOUDAO_URL, data=data, headers=headers)
def connect(keywords, to='en', _from='zh-CHS'):
if not keywords:
return ''
q = keywords
data = {}
data['from'] = _from
data['to'] = to
data['signType'] = 'v3'
curtime = str(int(time.time()))
data['curtime'] = curtime
salt = str(uuid.uuid1())
signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET
sign = encrypt(signStr)
data['appKey'] = APP_KEY
data['q'] = q
data['salt'] = salt
data['sign'] = sign
response = do_request(data)
contentType = response.headers['Content-Type']
if contentType == "audio/mp3":
millis = int(round(time.time() * 1000))
filePath = "合成的音频存储路径" + str(millis) + ".mp3"
fo = open(filePath, 'wb')
fo.write(response.content)
fo.close()
else:
json_obj = json.loads(response.content)
# print(json_obj)
if json_obj.get('errorCode') == '0':
return json_obj.get('data').get('translation')
elif json_obj.get('errorCode') == '500':
if json_obj.get('errorMessage') == '30':
# 翻译失败
return q
print("errorMessage = " + json_obj.get('errorMessage'))
# 其他情况返回空
return ''
if __name__ == '__main__':
data = connect("公司专业生产的PVC套管", 'en')
print(data)