R语言中searchTwitter的since和until参数报错问题求助
问题解决:Twitter API无法获取2016年历史推文的原因及适配方案
首先明确核心问题:你使用的searchTwitter函数调用的是Twitter旧版标准搜索API(search/tweets),免费版的该API仅支持查询最近7天内的推文——这就是你请求2016年内容却返回0条的根本原因,和since/until的格式无关(你的参数格式是符合要求的)。
下面给你几个适配R语言项目的解决方案:
方案1:使用Twitter Premium/Enterprise API
如果你的项目需要稳定获取历史推文数据,可以申请Twitter的Premium或Enterprise API服务。这类付费服务支持查询最远至2006年的历史数据,推荐用rtweet包(替代已停止维护的twitteR包)来调用相关接口,示例代码如下:
# 安装并加载rtweet包 install.packages("rtweet") library(rtweet) # 完成API认证(需提前获取Premium API密钥) auth_setup_default() # 查询2016年3月16-17日的目标推文 donald_tweets <- search_fullarchive( q = "Donald + Trump Republicans exclude:retweets", fromDate = "201603160000", toDate = "201603170000", env_name = "你的Premium环境名称" )
方案2:申请Twitter学术研究API
如果你的项目属于学术研究范畴,可以免费申请Twitter Academic Research API,它支持获取最多10年的历史推文数据。认证后同样通过rtweet包的search_fullarchive函数即可查询2016年的内容,流程和Premium API类似。
方案3:使用公开归档数据集
如果不想使用付费API,可以寻找针对2016年美国大选的公开推文归档数据集,下载后导入R中进行分析。这类数据集通常可在学术数据平台或开源数据社区获取。
临时测试方案(验证代码逻辑)
如果只是想验证代码逻辑是否正确,把since和until改成最近7天内的日期,就能通过免费API正常获取推文了:
# 若仍使用twitteR包(不推荐,建议迁移到rtweet) install.packages("twitteR") library(twitteR) # 完成普通API认证 setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret) # 查询最近7天内的目标推文 donald_tweets <- searchTwitter( "Donald + Trump Republicans exclude:retweets", n=50, lang = "en", since = "2024-05-10", until = "2024-05-11" ) donald_tweets
注意:
rtweet包,它支持最新的Twitter API版本,功能更稳定完善。
内容的提问来源于stack exchange,提问作者Mahnoor
相关产品推荐
相关产品推荐

