如何解决分页/使用tweepy访问超过100条推文
我想出了以下代码,该代码遍历一堆日期并使用twitters full_archive_search推流tweet。请注意,我正在使用免费的沙盒版本访问过去的推文,该推文每月允许50个请求。我遇到的问题是我每天要访问100条以上的推文。 (搜索仅从第一页给出100条tweet // results,结果如何访问第二页,依此类推?)查阅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,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)
我想知道如何在tweet对象中添加next
参数以每个日期提取100条以上的tweet?有什么想法吗?
解决方法
我要做的是使用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,tweet_mode = 'extended').items()
让我知道您是否遇到任何错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。