首页 > 解决方案 > 谷歌翻译数据时遇到错误

问题描述

我正在尝试使用以下示例代码翻译推文列表:

from google_trans_new import google_translator  
translator = google_translator()  
translate_text = translator.translate('สวัสดีจีน', lang_src='th',lang_tgt='en')  
print(translate_text)

运行代码时,我不断遇到以下长错误:

HTTPError                                 Traceback (most recent call last)
~\anaconda3\lib\site-packages\google_trans_new\google_trans_new.py in translate(self, text, lang_tgt, lang_src, pronounce)
    188                         raise e
--> 189             r.raise_for_status()
    190         except requests.exceptions.ConnectTimeout as e:

~\anaconda3\lib\site-packages\requests\models.py in raise_for_status(self)
    940         if http_error_msg:
--> 941             raise HTTPError(http_error_msg, response=self)
    942 

HTTPError: 429 Client Error: Too Many Requests for url: https://www.google.com/sorry/index?continue=https://translate.google.cn/_/TranslateWebserverUi/data/batchexecute&q=EgRrvwCgGLHwuIAGIhkA8aeDS9RXYOujcLlE7r1EY3pCFB3PU57xMgFy

During handling of the above exception, another exception occurred:

google_new_transError                     Traceback (most recent call last)
<ipython-input-1-e0a80cf9e6cc> in <module>
      1 from google_trans_new import google_translator
      2 translator = google_translator()
----> 3 translate_text = translator.translate('สวัสดีจีน', lang_src='th',lang_tgt='en')
      4 print(translate_text)
      5 #output: Hello china

~\anaconda3\lib\site-packages\google_trans_new\google_trans_new.py in translate(self, text, lang_tgt, lang_src, pronounce)
    192         except requests.exceptions.HTTPError as e:
    193             # Request successful, bad response
--> 194             raise google_new_transError(tts=self, response=r)
    195         except requests.exceptions.RequestException as e:
    196             # Request failed

google_new_transError: 429 (Too Many Requests) from TTS API. Probable cause: Unknown

这是因为我使用翻译器太频繁了吗?它什么时候会重置,以便我可以继续工作?

标签: pythongoogle-cloud-platformtranslation

解决方案


google_trans_new是一个使用translate.google.com的 Web API 的非官方库,也与 Google 无关。
它正在抓取翻译网页,这就是为什么您最终会收到 429 错误消息,即HTTP 429 Too Many Request状态代码。
这种非官方的库是不稳定的,最终会被阻塞。

要获得稳定的应用程序,您应该使用调用Cloud Translation API的官方库。 Cloud Translation API 有配额,但它会使用指数退避重试处理这些错误。


推荐阅读