我刚刚开始使用 Python 中的 goslate 库来检测文本中单词的语言,但是在测试了 7-8 个输入之后,我给出了用两种语言(阿拉伯语和英语)编写的单词的输入。之后,它开始给我错误。
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
execfile("C:/test_goslate.py");
File "C:/test_goslate.py", line 12, in <module>
language_id = gs.detect('الدولة')
File "C:\Python27\lib\site-packages\goslate.py", line 484, in detect
return self._detect_language(text)
File "C:\Python27\lib\site-packages\goslate.py", line 448, in _detect_language
return self._basic_translate(text[:50].encode('utf-8'), 'en', 'auto')[1]
File "C:\Python27\lib\site-packages\goslate.py", line 251, in _basic_translate
response_content = self._open_url(url)
File "C:\Python27\lib\site-packages\goslate.py", line 181, in _open_url
response = self._opener.open(request, timeout=self._TIMEOUT)
File "C:\Python27\lib\urllib2.py", line 410, in open
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 448, in error
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 503: Service Unavailable
我将代码编写为:
# -*- coding: utf8 -*-
import urllib2
import goslate
gs = goslate.Goslate()
language_id = gs.detect('wait الدولة')
print (gs.get_languages()[language_id])
现在它对于我之前测试过的任何输入都不起作用,并且给了我同样的错误。我试图在谷歌上找到错误解决方案,但没有任何帮助。这就是我发现的: 链接 1 - StackOverflow
我尝试使用上面链接中建议的命令更新它:
pip install -U goslate
但它没有帮助,因为它已经是我正在使用的最新更新版本。我还在图书馆文档中读到,当以下情况出现这种翻译错误时:
If you get HTTP 5xx error, it is probably because google has banned your client IP address from transation querying.
You could verify it by access google translation service in browser manually.
You could try the following to overcome this issue:
query through a HTTP/SOCK5 proxy, see Proxy Support
using another google domain for translation: gs = Goslate(service_urls=['http://translate.google.de'])
wait for 3 seconds before issue another querying
我尝试使用代理连接,但没有任何帮助。
编辑 原因可能是谷歌每天只允许一些请求吗?在那种情况下,有什么更好的办法呢?有没有其他基于 Python 的库可以帮助我解决这个问题?