🏴☠️ Перевод текстов: бесплатно, сердито и без API-ключей Если вы хоть раз пытались прикрутить перевод текста к своему пет-проекту или парсеру, то знаете эту боль. Официальный Google Cloud Translation требует привязку карты и квоты, DeepL API — прекрасен, но дорог (и сложен в оплате из РФ), а писать свой скрапер для веб-морды переводчика — это гарантированный ад с генерацией токенов (tk), подписью запросов и постоянными отвалами верстки. Но есть translators — библиотека, которая делает эту работу за вас. Это агрегатор, который (по сути, методом реверс-инжиниринга) стучится в веб-интерфейсы более 30 переводческих сервисов.
Что под капотом:
1️⃣ Ассортимент. Кроме банальных Google/Bing/Yandex, там есть DeepL (лучшее качество для европейских языков), Baidu/Alibaba (для китайщины) и даже специфические штуки типа VolcEngine.
2️⃣ HTML-friendly. Функция translate_html умеет переводить контент, не ломая структуру тегов.
3️⃣ Умный обход. Есть поддержка разных HTTP-клиентов: requests, httpx, niquests и даже cloudscraper. Если один метод блокируют по фингерпринту, можно переключиться на другой прямо в аргументах.
4️⃣ JS-магия. Библиотека сама выполняет нужный JavaScript (через exejs) для генерации подписей запросов. Да, для этого в системе должен быть Node.js, но это малая плата за халяву.
🧑💻 Как это выглядит в коде: import translators as ts
text = "Python is a language for rebels."
#Используем движок Alibabaprint(ts.translate_text(text, translator='alibaba', to_language='ru'))
#Вывод: Python - это язык для повстанцев. #Или DeepL (если IP не в бане)print(ts.translate_text(text, translator='deepl', to_language='ru'))
⚠️ Ложка дегтя (куда же без неё): Это не решение для High-Load продакшена. Это скрапинг. Вас будут банить по IP, если начнете долбить тысячи запросов в секунду (хотя в либе есть кэширование сессий preaccelerate). API веб-интерфейсов могут меняться без предупреждения, и придется ждать обновления пакета.
Но для дата-аналитики, сбора датасетов, ботов или личных тулзов — хороший инструмент, который сэкономит кучу денег.