странная ошибка питона 3 мин. после выполнения скрипта твиттера? - PullRequest
1 голос
/ 16 января 2012

при выполнении скрипта Python, который очищает исторические твиты Я через 2-3 минуты. получить следующую ошибку !!!

Я действительно не знаю, что это значит

и как я мог предотвратить это

Я вызывающе нахожусь в моем ограничении скорости, потому что перед выполнением каждого цикла очистки я проверяю, и он возвращается как истина !!!

спасибо за вашу помощь

Traceback (most recent call last):
  File "twitter.py", line 13, in <module>
openurl = urllib.urlopen("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&contributor_details&include_rts=true&screen_name="+user+"&count=3600")
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 84, in urlopen
return opener.open(url)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 205, in open
return getattr(self, name)(url)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 449, in open_https
return self.http_error(url, fp, errcode, errmsg, headers)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 369, in http_error
result = method(url, fp, errcode, errmsg, headers)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 691, in http_error_401
errcode, errmsg, headers)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 379, in http_error_default
raise IOError, ('http error', errcode, errmsg, headers)
IOError: ('http error', 401, 'Unauthorized', <httplib.HTTPMessage instance at 0x1005ca9e0>)

скрипт работает отлично, но через 2-3 минуты он всегда ломается ....

1 Ответ

2 голосов
/ 16 января 2012

API Twitter имеет ограничение в 150 запросов в час. https://dev.twitter.com/docs/rate-limiting Попробуйте запросить более одного твита за один запрос.Я думаю, что объяснение приходит с вашим ответом 401 попробуйте это

try:
    response = urllib2.urlopen.....
except urllib2.HTTPError as e:
    error = e.read() # this will be your error message
    print error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...