相关链接: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': '泰语'
}