You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rtweet包get_timeline()随机截断推文问题求助

问题:使用rtweet的get_timeline()抓取德国政党/政客推文时出现截断问题

背景与原代码

为抓取德国政客与政党2020年1月1日至2022年12月31日的推文,使用rtweet包的get_timeline()循环处理账号列表,通过个人账号对应时间范围的推文ID设置since_id和max_id界定时间区间,代码如下:

for (user in afd_functional_users) {

  # 获取用户时间线推文
  user_tweets <- get_timeline(user, n = Inf, parse = TRUE, include_rts = FALSE,
                              exclude_replies = TRUE, trim_user = TRUE,
                              since_id = "1211587346791063552",
                              max_id = "1609503765043855360",
                              retryonratelimit = FALSE,
                              verbose = TRUE)
  
  # 添加用户账号列为数据框字段
  user_tweets$handle <- user
  
  # 将当前用户推文合并到主数据框
  afd_df <- rbind(afd_df, user_tweets)
  
  # 短暂暂停避免触发限流
  Sys.sleep(5)
}

遇到的问题

多数账号的推文抓取正常,但有10-20%的账号无法获取目标时间范围内的全部推文,会出现随机截断,且每个账号的截断点不同:

  • 例如@AfD仅抓取到1003条推文,提前终止在2020/2021年(抓取顺序为从最新推文往前)
  • @AfDimBundestag仅抓取到2718条推文,同样提前终止在2020/2021年
  • 已手动确认这些账号在目标时间范围内有推文发布

尝试过的无效解决方法

  • 针对截断账号重新调用get_timeline(),将max_id调整为上次抓取到的最后一条推文ID,代码示例如下,但运行后返回0条数据:
user_tweets <- get_timeline("AfD", n = Inf, parse = TRUE, include_rts = FALSE,
                            exclude_replies = TRUE, trim_user = TRUE,
                            since_id = "1211587346791063552",
                            max_id = "1321067464114032642",
                            retryonratelimit = TRUE,
                            verbose = TRUE)
  • 尝试使用search_tweets()和search_tweets2(),未解决问题
  • 注:旧Twitter API已停用,无法依赖旧接口解决

请求可行解决方案

希望得到有效的解决办法,如需更多信息可补充。

内容的提问来源于stack exchange,提问作者Jule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:32:46