作者 | 月小水长
出处 | 月小水长公众号
一个可能你似曾相识的场景
阅读内容包含大量英文的 PPT、Word、Excel 或者记事本时,由于英语不熟悉,为了流利地阅读,需要打开浏览器进入谷歌翻译的主界面,然后把英文复制到谷歌翻译的输入框中,最后又把翻译结果复制回 PPT、Word 和 Excel。
![4ff632ccfaf79a6036d245fb2f4d786c.png](https://i-blog.csdnimg.cn/blog_migrate/19fd1b116b3b7c996b8a51b3b62d906c.jpeg)
![b97d990cf627f02ef312defca8d10b1c.png](https://i-blog.csdnimg.cn/blog_migrate/945ea8fcdca86aac3001fb2e4943cb35.jpeg)
要是一个两个单词还好,要是发现有 100 个单词不认识,就必须复制粘贴 200 次,如此机械性重复性的工作,应该交给程序来做,这就是我设计下面这个自动化翻译工具的初衷。
提升办公效率的法宝
![f01b5615ba4f39c6f2b79c37b7fbdc8f.gif](https://i-blog.csdnimg.cn/blog_migrate/1ec847d4d2528fa4c758a02d2977a618.gif)
如上图所示,运行程序并保持后台运行,在电脑上的任何一个软件中选择一段文本,并 Ctrl + C 复制到系统剪贴板中,程序就会自动帮助我们完成翻译,并将翻译结果自动复制到系统剪贴版中,只需 Ctrl + V,就完成了翻译结果对原文的替换。
编码实现
程序主要分为两部分,第一部分为谷歌翻译爬虫,第二部分就是实现这个将翻译结果自动替换的业务逻辑。
谷歌翻译爬虫
通过浏览器 F12 开发者工具,很容易定位到翻译请求的URL:http://translate.google.cn/translate_a/single?client=t&sl=en&tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss &dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2
这个请求接受两个参数,一个就是我们要翻译的字符串 q,另一个是用于用户认证的 tk(token),其中 q 很容易构造,tk 的构造就需要花费一番心力了,需要我们调试 js 代码,这里参考 Github 上大神的轮子: https://github.com/cocoa520/Google_TK
谷歌翻译爬虫的主要代码如下:
1def translate(tk, content):
2 if len(content) > 4891:
3 print("too long to translate")
4 return
5
6 param = {'tk': tk, 'q': content}
7
8 result = requests.get("""http://translate.google.cn/translate_a/single?client=t&sl=en
9 &tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss
10 &dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2