【问题标题】:pagination / accessing more than 100 tweets using tweepy使用 tweepy 分页/访问 100 多条推文
【发布时间】:2020-09-25 18:30:34
【问题描述】:

我想出了以下代码,它使用 twitters full_archive_search 迭代一堆日期和流式推文。请注意,我使用免费沙盒版本来访问过去的推文,每月允许 50 个请求。我遇到的问题是我想每天访问超过 100 条推文。 (搜索仅从第一页给出 100 条推文/结果,如何访问第二页等等?)在参考了 tweepy 文档后,我感觉这可以通过 next 参数进行控制。但我不知道如何使用它。

import tweepy as tw
from datetime import date,timedelta
from dateutil.relativedelta import relative delta

# Create a range of dates 
start_date = date(2020,1,1)
end_date = date(2020,1,31)
date_range = [start_date + timedelta(days = i) for i in range(relativedelta(end_date,start_date).days)]
dates_str =[i.strftime('%Y%m%d%H%M') for i in date_range]

# Autenticate twitter
auth = tw.OauthHandler(
    consumer_key = ???
    consumer_secret = ???
)
api = tw.API(auth)

df_list = []

# Iterate over each date and extract maximum of 100 tweets per date. How do I increase this number?
for dt_idx, dt in enumerate(date_str):
    if dt_idx < len(dates_str) - 1:
        twObj = api,search_full_archive(
            environment_name = ???,
            query = '#Taal',
            fromDate = dates_str[dt_idx],
            toDate = dates_str[dt_idx + 1],
        )
        
        #iterate over the tweet object and save tweet text
        tweet_list = []
        for tweet in twObj:
            tweet_list.append(tweet.text)

        #append the tweet_list to df_list
        df_list.append(tweet_list)

我想知道如何在推文对象中添加next 参数以在每个日期提取超过 100 条推文?有什么想法吗?

【问题讨论】:

    标签: python tweepy


    【解决方案1】:

    我要做的是使用 user_timeline ,你也会遇到同样的问题,那就是必须处理分页。要解决这个问题,您可以使用“.Cursor”

    那么你将如何在你的代码中运行它:

    tweet_list = []
    for tweet in twObj:
        tweepy.Cursor(api.user_timeline, screen_name = "", count = 200, tweet_mode 
        = 'extended').items 
    

    这是我个人使用的函数,我更喜欢将函数设置为只运行一次,然后在我调用它时让它循环。我认为它更干净,您可以检查错误而不必让函数循环。

    def extract_tweets(userid):
        all_tweets = []
        tweets = tweepy.Cursor(api.user_timeline,screen_name = userid, 
                                count = 200, 
                                tweet_mode = 'extended').items()
    

    如果您遇到任何错误,请告诉我

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多