谷歌翻译python Googletrans库

白昼怎懂夜的黑 提交于 2020-02-09 14:13:09

googletrans 是一个免费的、可调用Google Translate API接口的python库。它借助Google Translate Ajax API接口来实现文本的检测和翻译。

googletrans 的基本用法可以参考文档连接:http://py-googletrans.rtfd.io/

API特性:

  • 快速可靠 - 它使用translate.google.com使用的相同服务器
  • 自动语言检测
  • 批量翻译
  • 可自定义的服务URL
  • 连接池(使用requests.Session的优点)
  • HTTP / 2支持

关于库使用的注意事项:

  • 单个文本的最大字符限制为15k。
  • 由于谷歌翻译的网页版本的限制,此API不保证库始终正常工作。 (如果您不关心稳定性,请使用此库。)
  • 如果您想使用稳定的API,我强烈建议您使用Google的官方翻译API。
  • 如果您收到HTTP 5xx错误或#6等错误,可能是因为Google已禁止您的客户端IP地址。

快速开始:

您可以从PyPI安装它:

$ pip install googletrans

HTTP / 2支持

这对每个人来说都很棒! (在我的测试中速度提高了2倍)如果你想更快地获得googletrans,你应该安装超级软件包。 Googletrans会自动检测是否安装了hyper,如果安装了hyper,它将用于http网络。

基本用法

如果未提供源语言,Google翻译会尝试检测源语言。

>>> from googletrans import Translator
>>> translator = Translator()
>>> translator.translate('안녕하세요.')
# <Translated src=ko dest=en text=Good evening. pronunciation=Good evening.>

>>> translator.translate('안녕하세요.', dest='ja')
# <Translated src=ko dest=ja text=こんにちは。 pronunciation=Kon'nichiwa.>

>>> translator.translate('veritas lux mea', src='la')
# <Translated src=la dest=en text=The truth is my light pronunciation=The truth is my light>

自定义服务URL

您可以使用其他谷歌翻译域进行翻译。 如果提供了多个URL,则随机选择一个域。

>>> from googletrans import Translator
>>> translator = Translator(service_urls=[
'translate.google.com',
'translate.google.co.kr',
])

高级用法(批量)

数组可用于在单个方法调用和单个HTTP会话中转换一批字符串。 上面显示的完全相同的方法也适用于数组。 

>>> translations = translator.translate(['The quick brown fox', 'jumps over', 'the lazy dog'], dest='ko')
>>> for translation in translations:
... print(translation.origin, ' -> ', translation.text)
# The quick brown fox -> 빠른 갈색 여우
# jumps over -> 이상 점프
# the lazy dog -> 게으른 개

语言检测

顾名思义,检测方法识别给定句子中使用的语言。 

>>> translator.detect('이 문장은 한글로 쓰여졌습니다.')
# <Detected lang=ko confidence=0.27041003>
>>> translator.detect('この文章は日本語で書かれました。')
# <Detected lang=ja confidence=0.64889508>
>>> translator.detect('This sentence is written in English.')
# <Detected lang=en confidence=0.22348526>
>>> translator.detect('Tiu frazo estas skribita en Esperanto.')
# <Detected lang=eo confidence=0.10538048>

 

API导航

googletrans.Translator
class googletrans.Translator(service_urls=None, user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64)', proxies=None, timeout=None)

      谷歌翻译ajax API实现类

      您必须创建一个Translator实例才能使用此API

参数:

  • service_urls(一系列字符串) - 谷歌翻译网址列表。 网址将随机使用。 例如['translate.google.com','translate.google.co.kr']
  • user_agent(str) - 发出请求时要发送的User-Agent标头。
  • proxies(字典) - 代理配置。 字典映射协议或协议和主机到代理的URL例如{'http':'foo.bar:3128','http://host.name':'foo.bar:4012'}
  • 超时(数字或数字的两倍) - 请求库的超时定义。 将被每个请求使用。

 

translate(text, dest='en', src='auto')

       将文本从源语言翻译为目标语言

参数:

  • text(UTF-8 str; unicode;字符串序列(list,tuple,iterator,generator)) - 要翻译的源文本。 通过序列输入支持批量转换。
  • dest  - 将源文本转换为的语言。 该值应为googletrans.LANGUAGES中列出的语言代码之一或googletrans.LANGCODES中列出的语言名称之一。
  • dest – str; unicode
  • src  - 源文本的语言。 该值应为googletrans.LANGUAGES中列出的语言代码之一或googletrans.LANGCODES中列出的语言名称之一。 如果未指定语言,系统将尝试自动识别源语言。
  • src – str; unicode

返回类型:Translated

返回类型:list (when a list is passed)

基本用法:

>>> from googletrans import Translator
>>> translator = Translator()
>>> data=translator.translate('이 문장은 한글로 쓰여졌습니다.',dest='zh-cn')
>>> data.src
'ko'
>>> data.dest
'zh-cn'
>>> data.text
'这句话是用韩文写的。'
>>>

高阶用法:

>>> translations = translator.translate(['The quick brown fox', 'jumps over', 'the lazy dog'], dest='ko')
>>> for translation in translations:
... print(translation.origin, ' -> ', translation.text)
The quick brown fox -> 빠른 갈색 여우
jumps over -> 이상 점프
the lazy dog -> 게으른 개

返回类型class googletrans.models.Translated(srcdestorigintextpronunciationextra_data=None)

属性:

  • src – source langauge (default: auto)
  • dest – destination language (default: en)
  • origin – original text
  • text – translated text
  • pronunciation – pronunciation

 

detect(text)

     检测输入文本的语言

参数:

  • text(UTF-8 str; unicode;字符串序列(list,tuple,iterator,generator)) - 要识别其语言的源文本。 通过序列输入支持批量检测。

返回类型:Detected
返回类型:list (when a list is passed)
基本用法:

>>> from googletrans import Translator
>>> translator = Translator()
>>> translator.detect('이 문장은 한글로 쓰여졌습니다.')
<Detected lang=ko confidence=0.27041003>
>>> translator.detect('この文章は日本語で書かれました。')
<Detected lang=ja confidence=0.64889508>
>>> translator.detect('This sentence is written in English.')
<Detected lang=en confidence=0.22348526>
>>> translator.detect('Tiu frazo estas skribita en Esperanto.')
<Detected lang=eo confidence=0.10538048>

高阶用法: 

>>> langs = translator.detect(['한국어', '日本語', 'English', 'le français'])
>>> for lang in langs:
... print(lang.lang, lang.confidence)
ko 1
ja 0.92929292
en 0.96954316
fr 0.043500196

返回类型class googletrans.models.Detected(langconfidence)

属性:

  • lang – detected language
  • confidence – the confidence of detection result (0.00 to 1.00)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!