免费调用谷歌翻译

news/2024/11/28 13:43:01/

最近公司有需求,需要调用谷歌翻译的接口。虽然我最后可以勉强实现了翻译的功能,但还是把这个方法记录下来供各位参考。

首先声明,我这种实现方法只能翻译少量的内容,如果想要翻译比较多的内容就只能把内容拆分开来翻译。

1.找到谷歌翻译,通过f12查看谷歌翻译的时候调用的接口:https://translate.google.cn/translate_a/single?client=t&sl=auto&tl=en&hl=zhCN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF8&oe=UTF8&ssel=0&tsel=3&kc=0&tk=80338.476099&q=%E4%BB%96%E4%BB%AC%E8%BF%99%E6%A0%B7%E8%AF%B4

解析开来就是:client=t、sl=auto、tl=toLanguage、hl=fromLanguage、da=at、dt=bd、dt=ex、dt=ld、dt=gca、dt=rw、dt=rm、dt=ss、dt=t、ie=UTF8、oe=UTF8、ssel=0、tsel=3、kc=0、tk=(需要经过js文件的计算)、q=(需要翻译的文字)

这么多参数中只有tk参数最麻烦,需要使用经过js文件的计算得到,js文件我会在文章最后面分享。

2.使用jsoup模拟浏览器发送请求,接收到返回信息并解析返回信息,得到翻译的结果。(注意:一定要给请求中间加一条sleep(1000),否则谷歌可能会封你得ip)

//谷歌翻译(只能翻译比较短的内容)Getpublic static String TranslateGoogleGet(String transalteContente,String fromLanguage,String toLanguage){StringBuilder result=new StringBuilder();StringBuilder url=new StringBuilder();try {url.append("https://translate.google.cn/translate_a/single?").append("client=t&sl=").append(fromLanguage).append("&tl=").append(toLanguage).append("&hl=zh-CN").append("&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw").append("&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1&tk=").append(googleToken(transalteContente)).append("&q=").append(URLEncoder.encode(transalteContente, "utf-8"));} catch (UnsupportedEncodingException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//获取请求连接try {Thread.sleep(1000);} catch (InterruptedException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}String resp;try {resp = HttpUtil.doGet(url.toString());if("Error Response:caused by-->connect timed out".equals(resp) || "Error Response:caused by-->Read timed out".equals(resp)||"Error Response: HTTP/1.1 503 Service Unavailable".equals(resp)){return "error";}String string = resp.split("]],")[0];String[] split = string.split(",null,null,3],");for (String string2 : split) {if(!string2.contains("[null,null,")){String string3 = string2.split("\",\"")[0];int start = string3.indexOf("\"")+1;result.append(string3.substring(start,string3.length()));}}/*int start = resp.indexOf("\"")+1;int end = resp.indexOf("\"", start+1);*//*String[] split = resp.split("]],")[0].replace("[[[", "[").split("],");for (String string : split) {String replace = string.split(",")[0].replace("[", "").replace("\"", "");if(replace!=null && !"null".equals(replace)){result.append(replace);}}*/return result.toString();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return "";}

 

/*** 获取谷歌翻译的tk值* @param text* @return*/private static String googleToken(String text) {String tk = "";ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");try {//FileReader reader = new FileReader(ConfigUtil.getString("GoogleJs"));URL resource = TranslateUtil.class.getResource("");String string = resource.getPath().split("/WEB-INF")[0];string=string+"/gmphtml/js/Google.js";FileReader reader = new FileReader(string);engine.eval(reader);if (engine instanceof Invocable) {Invocable invoke = (Invocable)engine;tk = String.valueOf(invoke.invokeFunction("token", text));}} catch (Exception e) {e.printStackTrace();}return tk;}   }

Google.js文件分享:链接:https://pan.baidu.com/s/13HCY0T3BvI9zwQNEzyq0Yw 密码:pow2

 

 

 

 

 


http://www.ppmy.cn/news/354617.html

相关文章

如何下载谷歌浏览器

哈喽,大家好,我是阿巭,一个励志要当娱乐博主的技术博主,今天给大家带来如何下载谷歌浏览器的方法. 为什么要安装谷歌浏览器呢? Chrome是由Google开发的一款简单便捷的网页浏览工具。谷歌浏览器(Google Chrome)可以提帮助你快速、安全的搜索到自己需要的内容,功能…

Google 谷歌翻译 API

API 地址: https://translate.google.com/translate_a/single? clientwebapp&slzh-CN&tlen&hlzh-CN&dtat&dtbd&dtex&dtld&dtmd&dtqca&dtrw&dtrm&dtsos& dtss&dtt&sourcebh&ssel0&tsel0&…

Google翻译插件

调用Google翻译的接口&#xff0c;需要开启curl支持。 <?php /* Google翻译函数 by QQ366958903 $text 要翻译的文本 $tl 目标语言 $sl 原语言 $ie 字符编码 */ function translat…

【Chrome 浏览器自带谷歌翻译用不了】

【Chrome 浏览器自带谷歌翻译用不了】 1. 前言1.1 问题模拟1.2 分析底层逻辑 2. 解决办法2.1 实操2.2 验证效果 3. 总结 1. 前言 最近发现 自己的Chrome 浏览器自带的谷歌翻译用不了怎么办&#xff0c;网上查找一番发现是 DNS 解析的问题&#xff0c;并且很多人遇到这种情况&a…

谷歌浏览器翻译扩展工具 Google Translate 1.2.4

以前用一个chrome的翻译插件&#xff0c;可是直接把一个网页翻译成请中文&#xff0c;可是从前一段时间恢复系统后&#xff0c;这个插件就忘了叫什么名字了&#xff0c;今天我搜索了很长时间&#xff0c;终于知道是Google Translate 1.2.4&#xff0c;只是以前的是 Google Tran…

谷歌翻译模块Googletrans库

在爬取国外杂志网站的时候&#xff0c;一些标题需要进行翻译。下载第三方库 安装 pip install googletrans用法 from googletrans import Translatordef Tran(datas): translato Translator(service_urls[translate.google.cn])return translator.translate(datas,destzh-C…

Google 翻译插件不能用了怎么办

Google 翻译退出中国。目前&#xff0c;从国内访问原本谷歌翻译本地化域名 链接 &#xff0c;提示“请收藏我们的网址 translate.google.com.hk”&#xff0c;不过&#xff0c;该新网址无法从国内访问&#xff08;所以对于会墙的用户来说其实问题不大&#xff09;。 Google发言…

google_trans_new库:谷歌翻译库Googletrans的替代品

简介 谷歌翻译库Googletrans久负盛名&#xff0c;但是由于tk值计算问题&#xff0c;频繁出现AttributeError: NoneType object has no attribute group异常。 google_trans_new库在Googletrans的基础上进行了完善&#xff0c;算是能够正常运行吧&#xff0c;但是效果也不太尽…