Ошибка 429 при вызове Reddit api из Google App Engine

Я работаю над работой cron в Google App Engine уже более месяца без каких-либо проблем. Работа делает множество вещей, одна из которых заключается в том, что она использует urllib2 для вызова вызова json от Reddit, а также нескольких других сайтов. Около двух недель назад я начал видеть ошибки при вызове Reddit, но никаких ошибок при вызове других сайтов. Ошибка, которую я получаю, – ошибка HTTP 429.

Я попытался выполнить тот же код вне Google App Engine и не имею никаких проблем. Я попытался использовать urlFetch, но получил ту же ошибку.

Вы можете увидеть ошибку при использовании интерактивной оболочки движка приложения со следующим кодом.

import urllib2 data = urllib2.urlopen('http://www.reddit.com/r/Music/.json', timeout=60) 

Изменить: Не знаю, почему это всегда терпит неудачу для меня, а не для кого-то другого. Это ошибка, которую я получаю:

 >>> import urllib2 >>> data = urllib2.urlopen('http://www.reddit.com/r/Music/.json', timeout=60) Traceback (most recent call last): File "/base/data/home/apps/s~shell-27/1.356011914885973647/shell.py", line 267, in get exec compiled in statement_module.__dict__ File "<string>", line 1, in <module> File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 400, in open response = meth(req, response) File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 513, in http_response 'http', request, response, code, msg, hdrs) File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 438, in error return self._call_chain(*args) File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 372, in _call_chain result = func(*args) File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 521, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 429: Unknown 

аналогичный код работает вне движка приложения без проблем:

 print urllib2.urlopen('http://www.reddit.com/r/Music/.json').read() 

Сначала я думал, что это связано с проблемой тайм-аута, поскольку она изначально работала, но поскольку нет ошибки тайм-аута, кроме странного кода HttpError, я не уверен. Есть идеи?

One Solution collect form web for “Ошибка 429 при вызове Reddit api из Google App Engine”

Reddit rate ограничивает api довольно сильно для пользовательского агента по умолчанию для оболочки python. Вам необходимо установить уникальный пользовательский агент с вашим именем пользователя reddit, например:

User-Agent: супер-счастливый бот от / u / spladug

Подробнее о reddit api здесь https://github.com/reddit/reddit/wiki/API .

  • ValueError: требуется jpeg, если явно не отключено использование --disable-jpeg, прерывание
  • Помогите получить URL-адрес, связанный с сообщением Reddit С PRAW
  • Получить все комментарии из определенного потока reddit в python
  • Каков 5-значный буквенно-цифровой идентификатор в URL-адресе reddit?
  • Python Возвращаемые данные, если не ожидается
  • Python Praw пропускает липкие субгениты
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.