Si vous avez déjà essayé d'intégrer la traduction de textes dans votre projet personnel ou votre parser, vous connaissez cette douleur. Google Cloud Translation officiel nécessite une carte bancaire et des quotas, DeepL API est excellent mais cher (et compliqué à payer depuis la Russie), et écrire son propre scraper pour l'interface web du traducteur, c'est l'enfer assuré avec la génération de tokens (tk), la signature des requêtes et les changements constants de mise en page.
Mais il y a translators — une bibliothèque qui fait ce travail pour vous.
C'est un agrégateur qui (par rétro-ingénierie) accède aux interfaces web de plus de 30 services de traduction.
Ce qu'il y a sous le capot :
1️⃣ Assortiment. En plus des classiques Google/Bing/Yandex, il y a DeepL (meilleure qualité pour les langues européennes), Baidu/Alibaba (pour le chinois) et même des trucs spécifiques comme VolcEngine.
2️⃣ HTML-friendly. La fonction
translate_html sait traduire le contenu sans casser la structure des balises.3️⃣ Contournement intelligent. Support de différents clients HTTP :
requests, httpx, niquests et même cloudscraper. Si une méthode est bloquée par empreinte numérique, on peut basculer sur une autre directement dans les arguments.4️⃣ Magie JS. La bibliothèque exécute elle-même le JavaScript nécessaire (via
exejs) pour générer les signatures de requêtes. Oui, Node.js doit être installé sur le système, mais c'est un petit prix à payer pour la gratuité.🧑💻 À quoi ça ressemble dans le code :
import translators as ts
text = "Python is a language for rebels."
# Utilisation du moteur Alibaba
print(ts.translate_text(text, translator='alibaba', to_language='fr'))
# Sortie : Python est un langage pour les rebelles.
# Ou DeepL (si l'IP n'est pas bannie)
print(ts.translate_text(text, translator='deepl', to_language='fr'))⚠️ Le revers de la médaille (il y en a toujours un) :
Ce n'est pas une solution pour la production à haute charge. C'est du scraping.
Vous serez bannis par IP si vous envoyez des milliers de requêtes par seconde (bien que la bibliothèque propose une mise en cache des sessions
preaccelerate).Les API des interfaces web peuvent changer sans préavis, et il faudra attendre une mise à jour du package.
Mais pour l'analyse de données, la collecte de datasets, les bots ou les outils personnels, c'est un bon outil qui vous fera économiser beaucoup d'argent.
#bon_open_source
Commentaires
0Aucun commentaire pour le moment.
Connectez-vous pour participer à la discussion.