在 TextBlob 中使用翻译功能时出现“HTTPError:HTTP 错误 404:未找到”

Posted

技术标签:

【中文标题】在 TextBlob 中使用翻译功能时出现“HTTPError:HTTP 错误 404:未找到”【英文标题】:"HTTPError: HTTP Error 404: Not Found" while using translation function in TextBlob 【发布时间】:2021-11-19 03:16:13 【问题描述】:

当我尝试在 jupyter notebook 的 TextBlob 库中使用翻译功能时,我得到:

HTTPError: HTTP Error 404: Not Found

我已在此处发布了我的代码和错误消息的屏幕截图以供参考。当我第一次运行完全相同的代码时,这段代码在 5-6 天前运行良好,但之后每当我运行这段代码时,它都会给我同样的错误消息。自过去 4-5 天以来,我一直在尝试运行此代码,但它再也没有工作过。

我的代码:

from textblob import TextBlob

en_blob = TextBlob('Simplilearn is one of the world’s leading certification training providers.')

en_blob.translate(to='es')  

我是 *** 的新手,在这个平台上提出了我的第一个问题,所以如果我的问题不符合这个平台的规则,请原谅我。

【问题讨论】:

能否请您添加更详细的异常输出(带回溯)? 经过一番谷歌搜索后,我终于找到了上述问题的解决方案,并发布在下面。感谢您抽出时间来研究我的问题。 【参考方案1】:

Textblob 库在后端使用 Google API 提供翻译功能。 Google 最近对其 API 进行了一些更改。由于这个原因,TextBlob 的翻译功能已停止工作。我注意到,通过对 translate.py 文件(在所有 TextBlob 文件所在的文件夹中)进行一些小的更改,如下所述,我们可以摆脱这个错误:

原代码:

url = "http://translate.google.com/translate_a/t?client=webapp&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1"

将上面 translate.py 中的代码更改为以下代码:

url = "http://translate.google.com/translate_a/t?client=te&format=html&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1"

【讨论】:

我刚刚尝试过,但仍然收到 HTTP 错误 404:未找到。请指教【参考方案2】:

我刚刚试过这个。第一次对我没有用。

我重新启动了 Anaconda Prompt,重新启动了 IPython。并重新运行我的 sn-ps,修复后问题就消失了。我使用的是Windows 10,我不使用虚拟环境,更改的两个文件是:

C:\Users\behai\anaconda3\pkgs\textblob-0.15.3-py_0\site-packages\textblob\translate.py
C:\Users\behai\anaconda3\Lib\site-packages\textblob\translate.py

而且我还发现我必须为换行符进行制表符缩进。

添加于 2021 年 2 月 1 日:

我什么都没做。我应用了 Manish 先生的建议(上面的绿色勾号)。我在 Anaconda 环境中遇到了这个 404 问题。应用上述更改后,我刚刚重新启动了“Anaconda Prompt (anaconda3)”,它就可以工作了。

这是上面建议的更改,在:

C:\Users\behai\anaconda3\Lib\site-packages\textblob\translate.py
    # url = "http://translate.google.com/translate_a/t?client=webapp&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1"
    url = "http://translate.google.com/translate_a/t?client=te&format=html&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1"

下面的文件会自动更新:

C:\Users\behai\anaconda3\pkgs\textblob-0.15.3-py_0\site-packages\textblob\translate.py

【讨论】:

我不确定这是否真的回答了这个问题 您能否进一步详细说明您所做的事情并发布您尝试过的明确解决方案,以便它也可以帮助其他人。 嗨,我已将上面的答案更新为 2021 年 2 月 1 日添加:。谢谢你和最好的问候。【参考方案3】:

固定在https://github.com/sloria/TextBlob/pull/398

您应该使用带有该修复程序的标记版本。

# requirements/txt
textblob @ git+https://github.com/sloria/TextBlob@0.17.1#=textBlob

【讨论】:

以上是关于在 TextBlob 中使用翻译功能时出现“HTTPError:HTTP 错误 404:未找到”的主要内容,如果未能解决你的问题,请参考以下文章

SQLSRV 致命错误:翻译 Unicode 时出现严重错误

使用Tesseract和Python进行OCR和语言翻译

使用 msn 协议运行 twisted.words 示例时出现问题

使用 QAction 和 setToolTip() 时出现 Qt 本地化问题

尝试使用 dom 解析 xml 页面时出现空指针异常

尝试将翻译键值的 json 从 laravel 刀片传递到 vue.js 时出现问题