HTTPError: ошибка HTTP 503: служба недоступна запрос обнаружения языка goslate: Python

Я только начал использовать библиотеку goslate на Python для обнаружения языка слов в тексте, но после тестирования его для 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:Python27libsite-packagesgoslate.py", line 484, in detect
    return self._detect_language(text)
  File "C:Python27libsite-packagesgoslate.py", line 448, in _detect_language
    return self._basic_translate(text[:50].encode('utf-8'), 'en', 'auto')[1]
  File "C:Python27libsite-packagesgoslate.py", line 251, in _basic_translate
    response_content = self._open_url(url)
  File "C:Python27libsite-packagesgoslate.py", line 181, in _open_url
    response = self._opener.open(request, timeout=self._TIMEOUT)
  File "C:Python27liburllib2.py", line 410, in open
    response = meth(req, response)
  File "C:Python27liburllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:Python27liburllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:Python27liburllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:Python27liburllib2.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])

и теперь он не работает вообще для любого ввода, который я тестировал ранее и дает мне ту же ошибку. Я попытался найти решение ошибки в google но ничего не помогало. Вот что я нашел : Ссылка 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

Я пытался использовать прокси-соединение, но ничего не помогало.

редактировать Может быть, причина в том, что Google разрешает только некоторое количество запросов в день ? В таком случае, что может быть лучше ? Есть ли другие библиотеки Python, который может помочь мне решить это?

4 ответов


в обновлении документации от 05 января 2016 года автор говорит, что они не будут обновлять Goslate, чтобы преодолеть контроль доступа Google API:

Google недавно обновил свою службу перевода с механизмом билета, чтобы предотвратить доступ к простой программе искателя, такой как goslate. Хотя более сложный искатель все еще может работать технически, однако он пересек бы тонкую грань между использованием сервиса и нарушением сервиса. goslate будет не обновляться, чтобы сломать механизм билетов google. Бесплатный обед окончен. Спасибо за использование.

официальный, Google-одобренный способ использования Google Translate в ваших программах с платной Google Cloud Translation API. С чем-нибудь еще, вы будете бороться с ограничением скорости Google и обнаружения ботов.


возможно, ищет это:https://pypi.python.org/pypi/textblob это лучше, чем гослате,

поскольку textblob заблокирован на данный момент, возможно, py-translate может сделать трюк,

https://pypi.python.org/pypi/py-translate/#downloads

http://pythonhosted.org/py-translate/devs/api.html

from translate import translator
translator('en', 'es', 'Hello World!')

" py-translate-это инструмент CLI для Google Translate, написанный на Питон!"

первый аргумент функции переводчика-это исходный язык, второй-целевой язык, а третий-фраза для перевода,

он возвращает словарь, который в документации называется интерфейсом запроса


разработка ответа @programmer44, вот пример использования TextBlob для данного конкретного случая:

from textblob.blob import TextBlob
blob = TextBlob('wait الدولة')
print(blob.detect_language())

поскольку TextBlob, похоже, больше не работает для меня. Я использую langdetect, который работает просто отлично.

как показано на их документации:

from langdetect import detect

print detect("War doesn't show who's right, just who's left.")
print detect("Ein, zwei, drei, vier")

вернутся

en
de