0
我的代码尝试在2014-10-01收集关于“cars”的推文。为了处理速率限制或任何其他与Twitter相关的错误(即超过容量),我最终实现了代码,告诉程序停止并等待TminepError发生时的20分钟。尝试绕过“Rate limits”和其他Twitter API错误失败
不幸的是,由于脚本崩溃,它不工作,我仍然可以看到速率限制错误消息。请指教,谢谢。
import tweepy
import time
import csv
ckey = "xxx"
csecret = "xxx"
atoken = "xxx-xxx"
asecret = "xxx"
OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret,
'access_token_key':atoken, 'access_token_secret':asecret}
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
api = tweepy.API(auth)
startSince = '2014-10-01'
endUntil = '2014-10-02'
searchTerms = 'cars'
for tweet in tweepy.Cursor(api.search, q=searchTerms,
since=startSince, until=endUntil).items(999999999):
try:
print "Name:", tweet.author.name.encode('utf8')
print "Screen-name:", tweet.author.screen_name.encode('utf8')
print "Tweet created:", tweet.created_at
except tweepy.error.TweepError:
time.sleep(60*20)
continue
except tweepy.TweepError:
time.sleep(60*20)
continue
except TweepError:
time.sleep(60*20)
continue
except IOError:
time.sleep(60*5)
continue
except StopIteration:
break
你为什么不使用流API?它没有速率限制 - https://dev.twitter.com/streaming/overview – 2014-10-06 08:41:28
哦,我不知道流媒体API没有速率限制。虽然我认为获得前一天的API数据对于我的项目来说更好,因为1)我担心互联网是否出现故障,流式传输将丢失大量数据,而要从API调用1%前一天的推文,如果情况变差,我可以重试,2)我实际上并不需要流式传输数据,因为我的当前应用程序不需要立即获取数据。 – KubiK888 2014-10-06 16:52:21