为了账号安全,请及时绑定邮箱和手机立即绑定

如何从用户 ID 获取推文?

如何从用户 ID 获取推文?

开满天机 2023-10-31 14:28:09
我有超过 9000 个用户 ID 的列表,并且我必须从每个用户那里收集最多 500 条推文。我的代码运行了大约 5 天,只收集了 541 个用户 ID 的推文。我怎样才能从所有帐户获取推文?我的代码做错了什么?auth = tweepy.OAuthHandler(consumer_key, consumer_secret)  auth.set_access_token(access_token, access_token_secret) ids = df_all["id_str"].tolist()api = tweepy.API(auth, wait_on_rate_limit=True) for id_ in ids:    df = pd.DataFrame()        outtweets = []        try:            for tweet in tweepy.Cursor(api.user_timeline,id=id_).items(500):            outtweets.append({'id':id_,                  'tw_id_str': tweet.id_str,                   'tw_created_at':tweet.created_at,                   'tw_favorite_count':tweet.favorite_count,                   'tw_retweet_count':tweet.retweet_count,                   'tw_text':tweet.text.encode("utf-8").decode("utf-8")})        df = pd.DataFrame(outtweets)        df.to_csv("tweets_of_ids.csv", mode='a')    except tweepy.TweepError as e:        continue非常感谢您的帮助!
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

我有超过 9000 个用户 ID 的列表,并且我必须从每个用户那里收集最多 500 条推文。我的代码运行了大约 5 天,只收集了 541 个用户 ID 的推文。我怎样才能从所有帐户获取推文?我的代码做错了什么?


auth = tweepy.OAuthHandler(consumer_key, consumer_secret)  

auth.set_access_token(access_token, access_token_secret) 


ids = df_all["id_str"].tolist()

api = tweepy.API(auth, wait_on_rate_limit=True) 



for id_ in ids:

    df = pd.DataFrame()

    

    outtweets = []

    

    try:

    

        for tweet in tweepy.Cursor(api.user_timeline,id=id_).items(500):


            outtweets.append({'id':id_,

                  'tw_id_str': tweet.id_str, 

                  'tw_created_at':tweet.created_at, 

                  'tw_favorite_count':tweet.favorite_count, 

                  'tw_retweet_count':tweet.retweet_count, 

                  'tw_text':tweet.text.encode("utf-8").decode("utf-8")})

        df = pd.DataFrame(outtweets)

        df.to_csv("tweets_of_ids.csv", mode='a')


    except tweepy.TweepError as e:

        continue

非常感谢您的帮助!


查看完整回答
反对 回复 2023-10-31
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

代码很好,但 Tweepy 正在限制请求以避免超过速率限制(使用wait_on_rate_limit)。

api = tweepy.API(auth, wait_on_rate_limit=True)

这种方法可以防止应用程序在超出限制时抛出错误。

查看完整回答
反对 回复 2023-10-31
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信