我有一个python脚本,它使用基本身份验证和使用tweetstream模块挂钩到Twitter Streaming API。避免420流媒体API?
我每分钟收集约10条推文。
我得到间歇性断开连接,所以目前正在记录它们发生的频率。
我一直打我的速度限制,并获得420 HTTP错误。
我知道,对于搜索API,使用OAuth身份验证可以获得更高的配额。对于流式传输,我无法找到任何有关基本和OAuth之间速率限制差异的参考。无论如何,它似乎是我使用的蟒蛇Tweetstream,不支持流媒体API。
我注意到Ruby version of Tweetstream支持OAuth,但我正在做这个项目作为python的学习体验。
从阅读Twitter help,它谈论的“后退策略”,并提到:
它是必不可少的,如果接收到一个HTTP响应420停止进一步的连接尝试几分钟 。
我不再收到错误,但一直试图在我的代码中制定更好的逻辑,以避免永久性地获取这些错误。
我目前的建议如下,现在等待200秒,然后再尝试重新连接。
while True:
try:
with tweetstream.FilterStream(uname, passwd, locations=extent) as stream:
# do stuff
except tweetstream.ConnectionError as e:
print e.message + " time: " + datetime.now
time.sleep(200)
pass
except tweetstream.AuthenticationError as e:
now = datetime.datetime.now()
print e.message + " time: " + str(now)
pass
我的问题是 - 这是一个很好的方式来解决接收来自Twitter的420个错误?那些比较熟悉Twitter API的人,你能推荐一种方法吗?