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

如何用rtweet库获取指定推文的正确转推及引用推文数量?

解决rtweet获取转推和引用推文数量的问题

使用rtweet库分析推文时,遇到转推计数与引用推文识别不匹配的问题。目标推文ID为1594049106615291907,截至提问时,该推文页面显示有536条转推和267条引用推文,但通过以下代码获取的tweet_retweets仅包含94条转推,且所有is_quote值均为FALSE:

tweet_status_id <- "1594049106615291907"
tweet_retweeter_ids <- rtweet::get_retweeters(status_id = tweet_status_id)
tweet_retweets <- rtweet::get_retweets(status_id = tweet_status_id, n = 1000)

dim(tweet_retweets)
table(tweet_retweets$is_quote)

问题根源

  • Twitter API对get_retweets接口有硬限制,最多只能返回100条最新的纯转推内容,即便设置n=1000也无法突破这个限制,这就是你只拿到94条的原因。
  • 引用推文属于独立创作的推文,只是关联了原推文,get_retweets接口仅返回无额外内容的纯转推,不会包含引用推文,因此is_quote字段全为FALSE。

正确获取数据的方法

1. 直接获取官方统计的总数

无需拉取所有转推/引用内容,调用lookup_tweets获取原推文的元数据,就能得到和页面一致的计数:

original_tweet <- rtweet::lookup_tweets(tweet_status_id)
# 查看转推总数
original_tweet$retweet_count
# 查看引用推文总数
original_tweet$quote_count

2. 获取所有转推用户ID(若需用户数据)

get_retweeters接口支持返回最多10万个转推用户的ID,比get_retweets能覆盖更多转推记录:

all_retweeter_ids <- rtweet::get_retweeters(status_id = tweet_status_id, n = 100000)
# 转推用户数量
length(all_retweeter_ids)

3. 拉取引用推文内容

要获取引用推文,需通过search_tweets接口搜索关联原推文的内容:

quote_tweets <- rtweet::search_tweets(
  paste0("quote_of:", tweet_status_id),
  n = 10000,
  include_rts = FALSE  # 过滤掉纯转推
)
# 实际获取到的引用推文数量
nrow(quote_tweets)

注意:搜索接口受API索引范围限制,可能无法返回所有历史引用推文,但能覆盖绝大多数有效数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:05:17