![](/img/trans.png)
[英]How to make multiple calls to Twitter API to get more than 200 Tweets per user using Tweepy?
[英]How to get all tweets (more than 100) and associated user fields in python using twitter search API v2 and Tweepy?
我正在尝试使用 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
您可以为此使用 GTdownloader:
from gtdownloader import TweetDownloader
# create downloader using Twitter API credentials
gtd = TweetDownloader(credentials='twitter_keys.yaml')
gtd.get_tweets('myquery',
lang='en',
max_tweets=100,
start_time='09/19/2022',
end_time='09/20/2022'
)
# accessing tweets data frame
gtd.tweets_df.head()
请参阅https://gtdownloader.readthedocs.io/上的文档
编辑:免责声明,我为我的研究编写了这段代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.