首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用tweepy时出现此错误

在使用tweepy时出现此错误
EN

Stack Overflow用户
提问于 2016-08-05 03:37:36
回答 2查看 9.7K关注 0票数 3

用于收集推文并将其发送到csv文件的Python代码

一直返回错误

tweepy.error.RateLimitError:{‘代码’:88,‘消息’:‘超过速率限制’}

尝试获取最新的时间线并将所有这些推文发送到csv文件

谢谢你的帮助

代码语言:javascript
复制
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")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-05 03:45:01

您的代码没有问题,您刚刚达到了Twitter流API的限制。让你再次提取tweet大约需要一个小时。

初始化tweetpy时需要添加wait_on_rate_limit=True选项:

代码语言:javascript
复制
api = tweepy.API(auth, wait_on_rate_limit=True)

我强烈建议您查看:https://dev.twitter.com/rest/public/rate-limiting以获取更多详细信息。

票数 18
EN

Stack Overflow用户

发布于 2016-08-05 03:43:04

您是否尝试在tweepy初始化时添加此选项,以便当达到速率限制时,它将等待而不是失败:

代码语言:javascript
复制
api = tweepy.API(auth, wait_on_rate_limit=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38775997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档