python实现谷歌翻译
背景
这个功能是在工作时,上级有个需求是让我将json文件中指定字段的英文翻译成中文,并且指定要使用谷歌翻译,理由是翻译的结果可能会比较准确。
过程
因为之前写过用python实现有道翻译,是在ajax中找到它的翻译接口的,所以我以为谷歌应该也差不多,于是我就打开 “开发者工具”,拼命地寻找它的翻译接口,果然让我发现了,哈哈哈哈~~
然而我发现我高兴地太早了,这TMD是个啥东西,为啥不是json啊,崩溃!!!
算了,你牛,我放弃~
于是我就面向度娘,寻求帮助,搜索关键词 “python实现谷歌翻译”,哦吼~ 结果还挺多
哈哈又草率了(欲哭无泪),随缘选中一个后,大致看了一下(好复杂555~),它们的思路大致是用PyExecJS库模拟js代码获取结果,我才不管这些,能用就行,然后一顿ctrl c/ctrl v 代码到本地后,修改一些数据,开始运行。
接下来就一顿报错,我就一顿卧槽。好的,没安装库…安装不成功,和一些莫名的其他原因。这能忍?于是我决定自己动手,丰衣足食,大不了就爬网页嘛,然后打开网页源代码,MD又草率了,并没有需要的内容,忘记结果是用js生成的,唉,怎么办?只好从最开始的那个ajax的接口下手了
内容里有很多重复的内容并且感觉毫无规则…我硬着头皮尝试用正则把内容提取出来,代码我就不贴,因为…
我花了好长好长时间,疯狂改正则表达式…啊哈!的确可以得出结果,超开心的~ 但是后面翻译的过程发现,这只适合翻译一句话,多一点都不行,它会漏掉…头又炸了!!!
我又放弃了,已经束手无策了…第二天,看到一篇文章,里面写的是 “ 字符串转为列表”的知识点,然后我灵光一现,想到了用正则和列表相结合,将内容提取出来,于是我看到了奥特曼(光)哈哈哈,这次真的可以!!!!不说了上代码
代码
import requests
import json
import re
import time
import pandas as pddef googleTranslate(text):url = 'https://translate.google.cn/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=-2984828793698248690&bl=boq_translate-webserver_20201221.17_p0&hl=zh-CN&soc-app=1&soc-platform=1&soc-device=1&_reqid=5445720&rt=c'headers = {'origin': 'https://translate.google.cn','referer': 'https://translate.google.cn/','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36','x-client-data': 'CIW2yQEIpbbJAQjEtskBCKmdygEIrMfKAQj2x8oBCPfHygEItMvKAQihz8oBCNzVygEIi5nLAQjBnMsB','Decoded':'message ClientVariations {repeated int32 variation_id = [3300101, 3300133, 3300164, 3313321, 3318700, 3318774, 3318775, 3319220, 3319713, 3320540, 3329163, 3329601];}','x-same-domain': '1'} data = {'f.req': f'[[["MkEWBc","[[\\"{text}\\",\\"auto\\",\\"zh-CN\\",true],[null]]",null,"generic"]]]'} res = requests.post(url, headers=headers, data=data).textpattern = '\)\]\}\'\s*\d{3,4}\s*\[(.*)\s*' part1 = re.findall(pattern, res)part1_list = json.loads('['+part1[0])[0]if part1_list[2] is None: print(text)return textcontent1 = part1_list[2].replace('\n', '')part2_list = json.loads(content1)[1][0][0][5:][0]s = ''for i in part2_list: s += i[0]# s += i[1][1] print(s)return stext = 'wherein, if the grouping based on the ambient signal data is repeated due to error identification such that more than k groups are produced, the number of groups is then reduced back to k, or lower, in the grouping based on the height data.'
print(text)
googleTranslate(text)
效果
效果如何?
如何翻译成其他语言?
当然,这仅仅是实现了任何语言转为中文,要转为别的语言,你可以通过执行js,获取所有语言对应的英文字母,以字典的形式存储,最后保存为json文件
然后执行程序时,动态地输入翻译后的语言,去json文件中获取对应的英文代表,然后替换data中的"zh-CN"即可。比如我想翻译成日语,我就将“zh-CN”替换成 “ja”,这样,翻译出来的结果就是日语了
修改data数据
翻译结果
好了,今天的分享就到这了,2021年第一篇文章,给自己点个赞,奥里给~
python实现谷歌翻译相关推荐
- python翻译程序-Python:谷歌翻译20次的程序如何实现?
Python:谷歌翻译20次的程序如何实现? 作者:橙汁 [梗的解释] " 谷歌翻译20次"就是多次利用谷歌翻译(Google Translate)将原本正常的名场面对话翻译成语言 ...
- Python 调用谷歌翻译(2021年3月测试可用)
前言 把之前的用来谷歌翻译的Python文件整理了下, 用来处理翻译下i18n.js所需要的字典, 直接调用即可.2021年3月测试可用 (¦3[▓▓] 2021年9月17日 测试失效 请查看: Py ...
- python调用谷歌翻译英文文献pdf_Python 调用 Google Translate API 批量翻译文章
有时候批量翻译中文文章,批量变成各个小语种的语言,手动的粘贴复制是非常慢的.需要调用翻译 API 接口,综合对比市面上的各个翻译 API,个人觉得 Google 的翻译 API 最为好用和准确. 下面 ...
- python调用谷歌翻译__201907
2019年7月4日15:53:17(¦3[▓▓] 晚安 谷歌翻译环境 Python 3.6 第三方库 Execjs (pip install PyExecJS) 文件列表 同目录下的四个文件:- to ...
- Python实现谷歌翻译爬虫,翻译PDF,翻译Excel,支持excel文档打开翻译,支持xlsx,xlsm等格式。
前言: 这两个Python脚本是我在实习期间完成的,具体来自于小组主管的两个小需求.做完之后感觉还是挺有收获的. 实现谷歌翻译,首先需要将我们写的Python脚本还有需要翻译的文件放到谷歌浏览器的安装 ...
- 转:利用python调用谷歌翻译API
废话少说 从速卖通抓取了一些评论想进行一些简单的文本分析,但是因为速卖通是一个跨境电商平台,上边的评论基本都是小语种,对,小语种,俄语,法语...英语还可以勉强应付一下,但是其他真的是一个字母都不认识 ...
- python使用谷歌翻译google_translator失效或者报错
要是用这个google_trans_new才能翻译 这个的原理是抓取了谷歌翻译网站 本质还是一样的感觉 但是这个在返回数据解析的时候拼接的数据是有问题的 https://github.com/lush ...
- python使用谷歌翻译
俺写脚本向来喜欢直接copy然后修改,看网上使用谷歌翻译API还要自己去破解的,这不是直接造轮子么.所以我选择安装googletrans 模块.直接 pip install googletrans 就 ...
- python调用谷歌翻译Googletrans接口
1. 使用场景 快速翻译一些爬取的英文文章或段落 2. pip install pip install googletrans 3. 调用 3.1 英译汉 from googletrans impor ...
- Python调用谷歌翻译接口
安装 翻译 语法识别 语种缩略表示 官方文档 安装 pip install googletrans 翻译 from googletrans import Translator translator = ...
最新文章
- mongodb内置角色
- layui select下拉框改变之 change 监听事件
- OpenCV在图像上添加边框borders
- 基于hi-nginx的web开发(python篇)——utf-8编码
- windows server 2003中 如何限制用户修改计算机名,Windows命令行下修改文件访问控制权限 -电脑资料...
- 【云栖计算之旅】线下沙龙第2期精彩预告:Docker在云平台上的最佳实践
- 程序员加班很严重吗?看看国外程序员怎么怼老板!
- Kafka常见痛点及优化方案
- 机器人门禁控制盒怎么接线方法_RFID门禁系统原理、初始密码、密码修改方法...
- SpringBoot WEB 核心原理
- java连接数据库增删改查公共方法
- edi系统三要素_从EDI的定义可以看出,通信网络、EDI软件及硬件、EDI数据标准化是构成EDI系统的三要素其...
- 2014Esri全球用户大会——亮点系列之精彩应用案例
- Tensorflow2.0使用CNN和爬虫做新闻分类
- dna数据u盘_DNA数据库黑客时代来临
- C# 中 volatile 关键字的解读
- mysql中计算百分比
- 9.28javaweb
- idead文件折叠问题终极解决办法
- Web端CAD图形找不同?一键在Web端找出CAD图不同并对比分析
热门文章
- Ring3加载驱动源码
- java scjp考试_Java开发网 - 【经验】今天以96通过SCJP考试(含考试经验和部分真题)[转帖]...
- 1.1 ubuntu环境下搭建gd32vf103
- LCD1602显示程序理解
- 小程序实现扫描二维码带着参数跳转到另外一个页面,实现对mysql数据库访问,并通过表格形式实现
- elastic-job和xxl-job实践对比
- Web前端性能优化优秀文章集锦
- C语言 Linux版俄罗斯方块,C语言版俄罗斯方块源代码
- 前端基础练习项目——网页版扫雷
- PDF虚拟打印机是如何打印文件的