随着现在谷歌翻译的准确度越来越高,大部分人们不约而同的选择了谷歌翻译。对于Python而言,现在的googletrans可谓是使用的很顺心。对于googletrans这个库的client文件中的Translator类的translate方法,我在此简单剖析以下:首先对语种进行判断,判断是否在语言库里,然后生成data参数【以前访问谷歌还需要g_tk参数计算,不知道为什么访问起来越来越简单了】,谷歌的请求界面采用POST方法,一些参数暂时不变,唯一变的是data中的f.req参数,他由原文、原语种、目标语种组成,自己实现就是:
json.dumps([[['MkEWBc', json.dumps([[text, src, des, True], [None]]), None, 'generic']]])
然后直接POST得到了结果,比较麻烦的就是对返回结果的处理,但多用几次根据规律还是很好得到具体处理方案的:
for row in res.text.split('\n'):
try:
try:
data = eval(eval(row.replace('null', 'None').replace('true', 'True').replace('false', 'False'))[0][2])
# 获取原语种
if src == 'auto':
try:
src = data[2]