前言

google翻译没有现成的接口, 而大部分别人写的调用google接口都是用python, 于是我把python的改成js.

分析

google翻译接口是get请求, 对cookie没什么要求. 唯一的难点就是tkk(token key)和tk(token). 谷歌会给我们一个tkk, 我们需要用tkk和需要翻译的字符来调用google的解密函数获取tk, 再携带该tk去请求.

整个过程是非常清晰简单的, 而且网上大神已经把解密函数贴出来了, 我们只需要拿来用就OK.

实现

  1. 获取tkk

    async updateTkk(){ const url = 'https://translate.google.cn' const res = await axios({ method:'GET', url, headers:GoogleTranslater.headers }) const re = /tkk:'([0-9]+.[0-9]+)'/ const reRes = re.exec(res['data']) if(!reRes){ throw new Error('tkk更新失败!') } this.tkk = reRes[1] return reRes[1] }

  2. 构建请求url

    _constructUrl(){ let url = GoogleTranslater.baseUrl+ '?' for(let key in GoogleTranslater.queryStrObj){ if(typeof(GoogleTranslater.queryStrObj[key]) === 'object'){ url = url + "dt=" + GoogleTranslater.queryStrObj[key].join('&dt=') + "&" continue } url = url + ${key}=${GoogleTranslater.queryStrObj[key]}& } return url }

  3. 调用解密函数根据tkk和翻译字符获取tk

  4. 构建请求,调用翻译api接口

    async traslate(q,langTo=langToEumn.ENGLISH){ // await this.updateTkk() GoogleTranslater.queryStrObj['q'] = encodeURI(q) GoogleTranslater.queryStrObj['tk'] = getTk(q,this.tkk) GoogleTranslater.queryStrObj['tl'] = langTo const url = this._constructUrl() const res = await axios({ method:'GET', headers:GoogleTranslater.headers, url, }) let translation = '' for(let sentence of res['data'][0]){ if(!sentence[0]){ continue } translation = translation + sentence[0] } return translation }

结尾

根据以上几个步骤就能完成google翻译接口的调用, 完整代码请点击我下载

THE END
推荐文章
  • 转化文案

  • Photoshop问题汇总

  • 黄帝内经-脉要精微论-望闻问切四诊法(1)

  • 黄帝内经-阴阳应象大论篇(2)

  • linux配置国内yum源

  • JS对粘贴板操作

  • rollup打包时引入第三方包

  • 执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字