最新动态
[Python]第三方模块:谷歌翻译接口--googletrans
2025-01-02 21:31

先前我在翻译日文歌的歌词时,需要得到对应词句的罗马音和中文,最终比较多款网页翻译器,选择了谷歌翻译。后来发现谷歌翻译在翻译大段含换行符的文本时,返回的罗马音结果会除去换行符,而在文本中加入明显的分隔符,罗马音结果却不尽人意。最好的办法当然是逐句翻译,对于歌词的工作量可想而知。故我多番查找,最终找到了Python下的一个第三方模块——googletrans。

PyPI链接
官方API链接

以下的内容手翻自PyPI项目介绍:
Googletrans是一款免费无极限、模拟谷歌翻译API的Python库。它使用了Google Translate Ajax API来调用可用于探测和翻译的方法。
本库支持Python2.7+和3.4+(注意:Python 2将在下一个主要更新中被移除)。
特性:

  • 快速且可靠——它使用的服务器与translate.google.com相同;
  • 自动识别语言;
  • 大片文本翻译(译注:这是直译的结果,实际测试发现这个模块支持对列表里每一句话翻译);
  • 自定义服务器url(译注:也就是可以选择translate.google.cn提速);
  • 连接池(requests.Session的优势);
  • 支持HTTP/2。

可以使用pip:

或者是使用上面PyPI的通道下载googletrans包,然后手动安装。

0.调用模块


如果是一般使用,可直接引用下属的翻译器类:

1.基本使用

我们使用Translator类来完成翻译工作。请参看下方的例子:


result变量返回一个Translated类:

(注:这是官网示例,实际上我测试时并没有这样的repr,反倒输出的是Python默认的repr格式,不知是版本问题还是bug。先保留原文的写法)

若要使用该模块,首先我们必须将模块中的Translator实例化,再调用translate方法。其中需要参数src(可不加,系统自动判断语言)、dest(可不加,默认为英文)、text(必加(废话),文本)。src和dest填语言代码,一般是二位字符串,具体可参照的内容:


而则是将上面的字典的键值全反过来,就不赘述了。

再看Translated类。它的repr返回了原先设置的src和dest,而此处的text则是翻译后的文字。如果是在交互命令行下直接输出这个repr也能达到翻译效果,但要是想拿到这个text,只需要调用Translated的成员变量text:


2.翻译结果的其他信息

Translated类还有一些有趣的成员:


(上述结果由于Termius复制有缺陷,本人自行做了些许修正,显示出的效果可能与您的测试结果有所不同,请谅解)

对于extra_data这个成员,googletrans源代码中并未解释每一个键值对代表什么意思,可能这里是谷歌翻译开发用的数据,或者是用户收集下来供反馈用的数据,总之可能用户无需了解具体内容,我们就在此略过。各位可以自己多测试几次翻译,对比看看具体每个参数是做什么工作的。

3.其他参数和操作

掌握前面的知识,我们已经可以解决很多翻译问题了。但是我们实际测试发现,直接用官网上的实例,会直接卡死,原因其实在前面介绍中已经提及——我们默认调用的是translate.google.com的API,而由于国内伟大的墙显然上不去。介绍中提到了可以修改调用的API域名,那应该在哪里调整呢?

其实,Translator类也有一些可以调整的参数。首先我们先看Translator类的声明:

想必各位应该都能猜出来上面的参数是什么意思。services_url给定API的地址,无需协议名,如果给出多个,那么每次翻译随机选择一个(根据实例和亲自测试,我们必须用列表包住url,否则会出现bug,不知道是什么原理);user_agent就是UA标识,这里已经给了就可以不填,当然你也可以用random.choice每次随机选UA;proxies就是代理;timeout就是超时的时间。后面三项,和urllib与requests的接口参数类似,这里就不赘述了,一般来说如果用translate.google.cn可以不加后面三项。

最后还有一个小操作,就是列表翻译:我们给定一个列表,就会返回每一项的翻译。测试如下:





    以上就是本篇文章【[Python]第三方模块:谷歌翻译接口--googletrans】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/18185.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评