有道翻译多语言接口的调用方法(Python)

相关链接:3种谷歌多语言翻译接口的调用方法(Python)在日常的生活和工作中,我们经常会需要使用到翻译工具。在诸多翻译工具中,我个人更青睐谷歌翻译,因此在这里整理通过Python调用谷歌翻译接口的3种方式。https://blog.csdn.net/qq_40039731/article/details/126239369?spm=1001.2014.3001.5501        在日常的生活和工作中,我们经常会需要使用到翻译工具。由于谷歌翻译在中国已停止服务,因此转用有道翻译作为替代品,现提供通过Python调用有道翻译接口的2种方式。

 方法一(简单版)

import requests
def youdao_translate(text, src_lang='AUTO', to_lang='AUTO'):
    url = 'http://fanyi.youdao.com/translate'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'}
    data = {'from': src_lang, 'to': to_lang, 'i': text, 'doctype': 'json'}
    response = requests.post(url=url, headers=headers, data=data)
    res = response.json()['translateResult'][0][0]['tgt']
    return res

 方法二(进阶版)

import requests
import time
import random
import hashlib

def youdao_translate_advance(text, src_lang='AUTO', to_lang='AUTO'):
    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
    headers = {
        'User-Agent': user_agent,
        'Referer': 'http://fanyi.youdao.com/',
        'Origin': 'http://fanyi.youdao.com',
        'X-Requested-With': 'XMLHttpRequest',
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Connection': 'keep-alive',
        'Host': 'fanyi.youdao.com',
        'cookie': '_ntes_nnid=937f1c788f1e087cf91d616319dc536a,1564395185984; OUTFOX_SEARCH_USER_ID_NCOO=; [email protected]; JSESSIONID=; ___rl__test__cookies=1'
    }
    lts = str(round(time.time() * 1000))
    salt = lts + str(random.randint(1, 10))
    strange_str = 'n%A-rKaT5fb[Gy?;N5@Tj'  # 'p09@Bn{h02_BIEe]$P^nG'
    sign = hashlib.md5(('fanyideskweb' + text + salt + strange_str).encode('utf-8')).hexdigest()
    bv = hashlib.md5(user_agent.encode('utf-8')).hexdigest()
    data = {
        'i': text,
        'from': src_lang,
        'to': to_lang,
        'smartresult': 'dict',
        'client': 'fanyideskweb',
        'salt': salt,  # 当前毫秒时间戳与10以内随机数字字符串的拼接
        'sign': sign,  # 'fanyideskweb' + text + salt + strange_str的md5值
        'lts': lts,  # 当前毫秒时间戳
        'bv': bv,  # 浏览器平台和版本信息的md5值
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_CLICKBUTTION',
    }
    response = requests.post(url=url, headers=headers, data=data)
    res = response.json()['translateResult'][0][0]['tgt']
    return res

运行结果展示

所有语言及其对应编码

{
    'AUTO': '自动检测语言',
    'zh-CHS': '中文',
    'en': '英语',
    'ja': '日语',
    'ko': '韩语',
    'fr': '法语',
    'de': '德语',
    'ru': '俄语',
    'es': '西班牙语',
    'pt': '葡萄牙语',
    'it': '意大利语',
    'vi': '越南语',
    'id': '印尼语',
    'ar': '阿拉伯语',
    'nl': '荷兰语',
    'th': '泰语'
}

猜你喜欢

转载自blog.csdn.net/qq_40039731/article/details/127302928
今日推荐