![](/img/trans.png)
[英]How to get all tweets (more than 100) and associated user fields in python using twitter search API v2 and Tweepy?
[英]pagination / accessing more than 100 tweets using tweepy
我想出了以下代码,它使用 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 条推文? 有任何想法吗?
我会做的是使用 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()
如果您遇到任何错误,请告诉我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.