用于收集推文并将其发送到csv文件的Python代码
一直返回错误
tweepy.error.RateLimitError:{‘代码’:88,‘消息’:‘超过速率限制’}
尝试获取最新的时间线并将所有这些推文发送到csv文件
谢谢你的帮助
def get_all_tweets(screen_name):
#authorize twitter, initialize tweepy
auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
#initialize a list to hold all the tweepy Tweets
alltweets = []
new_tweets = api.home_timeline (screen_name = screen_name,count=20)
#save most recent tweets
alltweets.extend(new_tweets)
#save the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
while len(new_tweets) > 0:
print ("getting tweets before %s" % (oldest))
#all subsiquent requests use the max_id param to prevent duplicates
new_tweets = api.home_timeline(screen_name = screen_name,count=20,max_id=oldest)
#save most recent tweets
alltweets.extend(new_tweets)
#update the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
print ("...%s tweets downloaded so far" % (len(alltweets)))
#transform the tweepy tweets into a 2D array that will populate the csv
outtweets = [[tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in alltweets]
#write the csv
with open('%s_tweetsBQ.csv' % screen_name, 'w') as f:
writer = csv.writer(f)
writer.writerow(["id","created_at","text"])
writer.writerows(outtweets)
pass
if __name__ == '__main__':
#pass in the username of the account you want to download
get_all_tweets("BQ")发布于 2016-08-05 03:45:01
您的代码没有问题,您刚刚达到了Twitter流API的限制。让你再次提取tweet大约需要一个小时。
初始化tweetpy时需要添加wait_on_rate_limit=True选项:
api = tweepy.API(auth, wait_on_rate_limit=True)我强烈建议您查看:https://dev.twitter.com/rest/public/rate-limiting以获取更多详细信息。
发布于 2016-08-05 03:43:04
您是否尝试在tweepy初始化时添加此选项,以便当达到速率限制时,它将等待而不是失败:
api = tweepy.API(auth, wait_on_rate_limit=True)https://stackoverflow.com/questions/38775997
复制相似问题