python - 谷歌翻译数据时遇到错误
问题描述
我正在尝试使用以下示例代码翻译推文列表:
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
这是因为我使用翻译器太频繁了吗?它什么时候会重置,以便我可以继续工作?
解决方案
google_trans_new是一个使用translate.google.com的 Web API 的非官方库,也与 Google 无关。
它正在抓取翻译网页,这就是为什么您最终会收到 429 错误消息,即HTTP 429 Too Many Request状态代码。
这种非官方的库是不稳定的,最终会被阻塞。
要获得稳定的应用程序,您应该使用调用Cloud Translation API的官方库。
Cloud Translation API 有配额,但它会使用指数退避重试处理这些错误。
推荐阅读
- c# - 为什么 EF 会自动运行种子方法?
- javascript - 所见即所得的文本编辑器图像删除/上传逻辑
- java - 如何检测电子邮件地址是否真实
- augmented-reality - 在 ar.js 中如何进行标记识别?如何提高识别效率?
- typescript - 验证器无法识别使用 patchValue() 或 setValue() 设置的值
- php - session_start() 导致错误:没有这样的文件或目录(新鲜的、可移植的 XAMPP)
- c# - 将参数从视图传递给控制器,标签助手无法处理提交
- powershell - 将文件名与当前目录路径连接起来
- r - 多个ifelse语句?
- google-apps-script - Google 表格脚本挂在 getRange 上