背景
8月1日,百度翻译API宣布"调整"
刚开始,以为是调用百度API代码出问题了,一直报错
后查,免费还有,但是从旧时不限量
改为5万字符/月,原来是"羊毛被薅光了"
此外,9月底,谷歌翻译中国版也停服了
谷歌官方解释称其原因是:“使用率都太低了”
而这导致依靠其服务的相关功能也受到了影响
python调用有道翻译详解
“换只羊薅薅”
python调用有道翻译,实现免费翻译
相对百度翻译,有道翻译不需要注册账号
直接采取python爬虫方式,实现翻译调用
具体代码及示例如下,复制即可使用:
import requests
def translateYouDao(con):
try:
data = {'doctype': 'json',
type: 'EN2ZH_CN',
'i': con}
r = requests.get("https://fanyi.youdao.com/translate", params=data)
res_json = r.json()
res_d = res_json['translateResult'][0]
tgt = []
for i in range(len(res_d)):
tgt.append(res_d[i]['tgt'])
return ''.join(tgt)
except Exception as e:
print('翻译失败:', e)
return '翻译失败:' + con
if __name__ == '__main__':
con = 'Many people climbed to the top of the ladder and found that the ladder had built the wrong wall. Yes!'
res = translateYouDao(con)
print('翻译结果:\n', res)
上述代码运行结果
上述代码解析
1、模块使用问题:requests模块需单独安装,安装命令:pip install requests
2、data:传一个字典格式数据
如:data = {‘doctype’: ‘json’,‘type’: ‘EN2ZH_CN’,‘i’: con}
type:含义是指翻译类型,可省略(默认汉译英-英译汉),常用可选参数:
AUTO:默认汉译英-英译汉、ZH_CN2EN:中文—>英语、EN2ZH_CN:英语—>中文、ZH_CN2JA:中文—>日语、ZH_CN2KR:中文—>韩语
注:以上参数字母需大写,如果不是大写格式,参数将不会起作用,运行默认翻译方式,代码也不会报错。
3、i:需要翻译的文本内容
返回值:返回一个json格式数据
{‘type’: ‘EN2ZH_CN’, ‘errorCode’: 0, ‘elapsedTime’: 2, ‘translateResult’: [[{‘src’: 'Many people climbed to the top of the ladder and found that the ladder had built the wrong wall. ', ‘tgt’: ‘许多人爬上梯子的顶端,发现梯子了错了墙。’}, {‘src’: ‘Yes!’, ‘tgt’: ‘是的!’}]]}
需要注意的是:
有道翻译会根据句子标点符号进行断句,然后把结果放在translateResult列表里,所以在提取翻译结果时,需要用一个循环把结果拼起来。上述代码中已经是做过处理了,可完整显示结果。
4、与百度翻译免费API相比:
(1)有道翻译不需要注册账号,采取类似爬虫方式调用
(2)速度相对较快,百度翻译免费API一秒只能调用一次
以上就是python调用有道翻译的方法。
微信关注【一位代码】,了解更多关于python、mysql相关问题解决办法。
-end-