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
(src, dest, origin, text, pronunciation, extra_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
(lang, confidence)
属性:
- lang – detected language
- confidence – the confidence of detection result (0.00 to 1.00)
来源:https://www.cnblogs.com/-wenli/p/12286779.html