背景

这个功能是在工作时,上级有个需求是让我将json文件中指定字段的英文翻译成中文,并且指定要使用谷歌翻译,理由是翻译的结果可能会比较准确。

过程

因为之前写过用python实现有道翻译,是在ajax中找到它的翻译接口的,所以我以为谷歌应该也差不多,于是我就打开 “开发者工具”,拼命地寻找它的翻译接口,果然让我发现了,哈哈哈哈~~

然而我发现我高兴地太早了,这TMD是个啥东西,为啥不是json啊,崩溃!!!

算了,你牛,我放弃~

于是我就面向度娘,寻求帮助,搜索关键词 “python实现谷歌翻译”,哦吼~ 结果还挺多

哈哈又草率了(欲哭无泪),随缘选中一个后,大致看了一下(好复杂555~),它们的思路大致是用PyExecJS库模拟js代码获取结果,我才不管这些,能用就行,然后一顿ctrl c/ctrl v 代码到本地后,修改一些数据,开始运行。

接下来就一顿报错,我就一顿卧槽。好的,没安装库…安装不成功,和一些莫名的其他原因。这能忍?于是我决定自己动手,丰衣足食,大不了就爬网页嘛,然后打开网页源代码,MD又草率了,并没有需要的内容,忘记结果是用js生成的,唉,怎么办?只好从最开始的那个ajax的接口下手了


内容里有很多重复的内容并且感觉毫无规则…我硬着头皮尝试用正则把内容提取出来,代码我就不贴,因为…

我花了好长好长时间,疯狂改正则表达式…啊哈!的确可以得出结果,超开心的~ 但是后面翻译的过程发现,这只适合翻译一句话,多一点都不行,它会漏掉…头又炸了!!!

我又放弃了,已经束手无策了…第二天,看到一篇文章,里面写的是 “ 字符串转为列表”的知识点,然后我灵光一现,想到了用正则和列表相结合,将内容提取出来,于是我看到了奥特曼(光)哈哈哈,这次真的可以!!!!不说了上代码

代码


import requests
import json
import re
import timedef googleTranslate(text):"""用谷歌翻译内容,返回翻译结果params: text 翻译的内容return: str s 翻译结果"""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"]]]'}  # text则是你要翻译的内容res = requests.post(url, headers=headers, data=data).text # 获取返回的结果pattern = '\)\]\}\'\s*\d{3,4}\s*\[(.*)\s*' # 提取需要的部分part1 = re.findall(pattern, res)part1_list = json.loads(part1[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] print(s)return s
text = 'friend. Let us look back on 2020 and look forward to 2021.'
print(text)
googleTranslate(text)

效果

效果如何?

如何翻译成其他语言?

当然,这仅仅是实现了任何语言转为中文,要转为别的语言,你可以通过执行js,获取所有语言对应的英文字母,以字典的形式存储,最后保存为json文件

然后执行程序时,动态地输入翻译后的语言,去json文件中获取对应的英文代表,然后替换data中的"zh-CN"即可。比如我想翻译成日语,我就将“zh-CN”替换成 “ja”,这样,翻译出来的结果就是日语了

修改data数据

翻译结果


好了,今天的分享就到这了,奥里给~

各位伙伴们好,詹帅本帅搭建了一个个人博客和小程序,汇集各种干货和资源,也方便大家阅读,感兴趣的小伙伴请移步小程序体验一下哦!(欢迎提建议)

推荐阅读

牛逼!Python常用数据类型的基本操作(长文系列第①篇)

牛逼!Python的判断、循环和各种表达式(长文系列第②篇)

牛逼!Python函数和文件操作(长文系列第③篇)

牛逼!Python错误、异常和模块(长文系列第④篇)

实战:Python 轻松实现自动化谷歌翻译!相关推荐

  1. 实战|Python轻松实现动态网页爬虫(附详细源码)

    用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识. 项目背景 事情是这样的,前几天我公众号写了篇爬虫入门的实战文章,叫做<实战|手把手教你用Python爬虫(附详细源码) ...

  2. beautifulsoup解析动态页面div未展开_实战|Python轻松实现动态网页爬虫(附详细源码)...

    用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识.项目背景事情是这样的,前几天我公众号写了篇爬虫入门的实战文章,叫做<实战|手把手教你用Python爬虫(附详细源码)&g ...

  3. 实战|Python轻松实现绘制词云图(附详细源码)

    项目背景虽然现在已经有很多现成的制作词云图的工具了,但一般存在以下几个问题:问题一:工具太多,眼花缭乱,质量参差不齐,选择困难症: 问题二:大多词云工具或多或少有一些限制,自定义的空间有限:问题三:有 ...

  4. MATLAB实现写谷歌翻译的小爬虫

    本文主要就是对比用python写的一个谷歌翻译的爬虫,分享一下MATLAB代码,主要使用的函数就是urlread和regexp. 先看一下效果: 代码是这个样子的(两个文件一个主文件:Google_t ...

  5. Python 谷歌翻译_浏览器版本 selenium (2022年1月测试可用)

    前言 另一种思路,使用selenium模拟浏览器操作谷歌翻译官网,获取显示翻译结果和之前的区别在于:翻译结果跟谷歌翻译官网应该一致这是一个简单的尝试,写完后,随便测试了几个单词可以用. 为什么要写这个 ...

  6. Python+selenium实现谷歌翻译

    一.需求分析 我们知道,网上有很多的翻译平台,比如:Google翻译.百度翻译.有道翻译.微软翻译等等.本次我们来使用selenium模块实现对Google翻译的爬取的实现. 我们需要上传一个文件给G ...

  7. python从入门到项目实战李兴华网盘_贺胜军Python轻松入门到项目实战【经典完整版】...

    贺胜军Python轻松入门到项目实战课程目录 01_Python基本概述 01_计算机组成_操作系统.avi 02_计算机的进制.avi 03_数据存储单位1.avi 04_编码和解码.avi 05_ ...

  8. python的翻译-Python编写简单的谷歌翻译软件

    Python编写简单的谷歌翻译软件 这是我学习Python的图形模块tkinter时完成的一个小作业,翻译速度快, 直接调用Google翻译的Python接口,界面简洁,已成为我日常编程的小助手^^ ...

  9. python自动汇总excel_RPA手把手:Python轻松实现EXCEL自动化

    原标题:RPA手把手:Python轻松实现EXCEL自动化 了解RPA请访问: www.i-search.com.cn 艺赛旗-RPA机器人免费下载: www.i-search.com.cn/inde ...

最新文章

  1. Java数据结构简述
  2. python中cursor属性_Python – AttributeError:’NoneType’对象没有属性’cursor’
  3. 10无法勾选隐藏的项目_Excel的隐藏和保护,你会用吗?
  4. CSS-伪类选择器(未完待续。。。)
  5. 第一步_安装VMware虚拟机和搭载ubuntu系统
  6. EnableQ在线问卷调查引擎在学校教学评估中的作用
  7. 详解Haar特征与AdaBoost方法原理
  8. python django 商品进销存管理系统(毕设、课设、学习)
  9. 微信小程序分享二维码扫码进入如何获取参数,小程序码进入参数为啥拿不到;
  10. Debian10安装Chromium浏览器
  11. ASP实现倒计时功能
  12. 一个在国内外使用广泛的精密电阻品牌介绍
  13. php后台如何添加sitemap,织梦后台的sitemap生成及推送教程
  14. 秦曾昌人工智能课程---1、机器学习中的数学基础
  15. 社区团购小程序怎么做,全流程解析
  16. 什么是CAD的模型和布局?
  17. pbl和sbl_探讨:PBL教学法
  18. go (golang) DNS域名解析实现
  19. 微信公众号网页授权记录
  20. mysql初始化ibdata1大小_MySQL问答系列之如何避免ibdata1文件大小暴涨

热门文章

  1. 简述C# XML解析方法的特点及应用
  2. java中List与Map的使用
  3. linux下搭建简单的git服务器测试1
  4. MySQL覆盖索引:直接从索引查询到了数据
  5. SourceTree中如何注册atlassian账号
  6. Apache的配置详解
  7. html自动刷新 idea_IDEA设置热部署
  8. windows下mysql(解压版)安装教程
  9. java二维码生成并可以转换
  10. CentOS6.5启动网络