def get(self, *args, **kwargs):
try:
r = self.client.get(*args, **kwargs)
# if rate limit reach
if r.status_code == 429:
seconds = self.wait_time()
logging.warn("Rate limit 429 from Weibo API, Sleep %d to try...", seconds)
time.sleep(seconds)
r = self.get(*args, **kwargs)
return r
except APIError, e:
# if rate limit reach
log.error("caught APIError error %s", e)
if e.error_code in [10022, 10023, 10024]:
seconds = self.wait_time()
logging.warn("Rate limit %d from Weibo API, Sleep %d to try...", e.error_code, seconds)
time.sleep(seconds)
return self.get(*args, **kwargs)
else:
raise e
except requests.exceptions.ConnectionError as e:
log.error("caught connection error %s", e)
self._connect()
return self.get(*args, **kwargs)
评论列表
文章目录