【发布时间】:2022-11-23 06:10:27
【问题描述】:
我正在尝试使用 search_recent_tweets 获取与特定查询匹配的所有推文及其关联的用户字段(用户名、姓名等)。我尝试使用分页和展平,但它只会展平推文(而不是用户字段)。所以我正在尝试在 get_user_tweets 中实现类似 next_token 的东西,但是 search_recent_tweets 没有 pagination_next?我怎样才能做到这一点?
这是我要使用的代码
import pandas as pd
import tweepy
BEARER_TOKEN = ''
api = tweepy.Client(BEARER_TOKEN)
response = api.search_recent_tweets(query = 'myquery',start_time = '2022-09-19T00:00:00Z', end_time = '2022-09-19T23:59:59Z',
expansions = ['author_id'],
tweet_fields = ['created_at'],
user_fields = ['username','name'],
max_results = 100)
tweet_df = pd.DataFrame(response.data)
metadata = response.meta
users = pd.concat({k: pd.DataFrame(v) for k, v in response.includes.items()}, axis=0)
users = users.reset_index(drop=True)
users.rename(columns={'id':'author_id'}, inplace=True)
all_tweets = tweet_df.merge(users)
next_token = metadata.get('next_token')
while next_token is not None:
response = api.search_recent_tweets(query = 'myquery',start_time = '2022-09-19T00:00:00Z', end_time = '2022-09-19T23:59:59Z',
expansions = ['author_id'],
tweet_fields = ['created_at'],
user_fields = ['username','name'],
pagination_token=next_token,
max_results = 100)
tweet_df = pd.DataFrame(response.data)
metadata = response.meta
users = pd.concat({k: pd.DataFrame(v) for k, v in response.includes.items()}, axis=0)
users = users.reset_index(drop=True)
users.rename(columns={'id':'author_id'}, inplace=True)
tweets = tweet_df.merge(users)
all_tweets.append(tweets)
next_token = metadata.get('next_token')
all_tweets
【问题讨论】:
-
关于如何做到这一点的任何想法?