谷歌翻译 API 调用
调试接口
由于时常使用 谷歌翻译,就想着把接口做成服务调用,省去登陆网页的麻烦。
需要更好的服务可以使用谷歌云服务 https://cloud.google.com/translate ,每月可获赠价值不超过 $10 的免费用量
用开发者工具调试页面接口拿到了翻译调用的接口
https://translate.google.com/translate_a/single?client=webapp&sl=zh-CN&tl=en&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=sos&dt=ss&dt=t&otf=1&ssel=5&tsel=5&xid=1791807%2C45625687%2C45626150&kc=11&tk=718445.806187&q=%E4%BD%A0%E5%A5%BD
但是在调试发现,接口中带了个签名参数 tk
,通过查找 js 源文件,在
translate_m_zh-CN.js 这里发现了相关痕迹,但是解析起来太费劲了。。。
调用模块
这个时候检索的能力就体验出来了,通过在 Google 里的一顿操作,得知 Node
里有相关使用库,它将 tk 的获取函数提取出来了。
通过 npm install --save google-translate-api
安装模块到本地,修改源代码。
-
将
google-translate-api
和google-translate-token
下的index.js
里的 translate.google.com 替换为 translate.google.cn。 -
修改
google-translate-api/index.js
中请求参数data
的数据 client: 'gtx'
使用
修改完成后便在国内也能调用。
const translate = require('google-translate-api');
translate('您好', {to: 'en'}).then(res => {
console.log(res.text);
}).catch(err => {
console.error(err);
});
在 Python
中使用可以这样方式调用 node
import os
p = os.popen('node translate.js %s' % value)
print(p.readlines()[0])