使用rtweet的get_followers获取美国参议员Twitter粉丝遇技术问题
解决方案
批量获取粉丝的报错处理
get_followers() 本身仅支持单次传入单个用户名,直接传入多用户向量会触发参数校验错误。要批量处理,需遍历每个用户名逐个调用:
基础循环实现
library(rtweet) data <- read.csv("data.csv", sep=";") # 初始化空数据框存储结果 all_followers <- data.frame() for (senator in data$twitter) { # 逐个获取粉丝 follower_data <- get_followers(senator, retryonratelimit = TRUE) # 添加参议员用户名作为标识,方便后续关联 follower_data$senator_username <- senator # 合并到总数据框 all_followers <- rbind(all_followers, follower_data) }
更高效的purrr遍历
library(rtweet) library(purrr) library(dplyr) data <- read.csv("data.csv", sep=";") # 遍历每个用户名,自动合并结果 all_followers <- map_dfr(data$twitter, function(senator) { get_followers(senator, retryonratelimit = TRUE) %>% mutate(senator_username = senator) })
单个用户仅返回5000粉丝的问题
这是Twitter API的权限限制导致的:
- 免费/基础版标准API:调用
get_followers()单次最多返回5000条,且无法获取完整粉丝列表(有总量上限)。 - 仅学术研究级API支持获取用户的全部粉丝,且需要配置对应的API凭证。
如果已使用学术API,检查以下步骤:
- 配置学术API token:
# 创建并保存学术API凭证 academic_token <- create_token( app = "你的应用名称", consumer_key = "你的API密钥", consumer_secret = "你的API密钥密钥", access_token = "你的访问令牌", access_secret = "你的访问令牌密钥", bearer_token = "你的Bearer Token", # 学术API必填 set_renv = TRUE ) # 使用学术token获取粉丝 get_followers("LisaMurkowski", retryonratelimit = TRUE, token = academic_token)
- 确保
retryonratelimit = TRUE参数生效,该参数会在触发API速率限制时自动等待,直到可以继续请求。
实用提示
- 处理大规模数据时,建议每处理一个用户就保存一次结果,避免程序崩溃丢失数据。
lookup_users()返回的粉丝总数是平台统计值,实际可获取数量取决于你的API权限等级。
内容的提问来源于stack exchange,提问作者Francesco Catalfamo
相关产品推荐
相关产品推荐

