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.com/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]

记录备用

Logo

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

更多推荐