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

如何使用rtweet获取推文的图片描述文本?

如何用rtweet获取推文的图片描述文本

可以获取推文的图片描述文本(即媒体替代文本),只是rtweet的get_timeline默认解析后的数据集没有直接暴露这个字段——因为图片alt文本嵌套在Twitter API返回的媒体实体深层结构里,默认解析逻辑没有提取它。

解决步骤

  1. 获取未解析的原始API数据:调用get_timeline时设置parse = FALSE,拿到Twitter API返回的原始JSON结构数据。
  2. 提取嵌套的alt文本字段:从原始数据的extended_entities -> media -> alt_text路径中提取图片描述。

示例代码

library(rtweet)
library(purrr)

# 获取单条未解析的原始推文数据
last_tweet_unparsed <- rtweet::get_timeline(user = 'esquinadobrasil', 
                                            n = 1, 
                                            parse = FALSE)

# 提取这条推文的图片描述文本
if (!is.null(last_tweet_unparsed[[1]]$extended_entities$media)) {
  media_alt_text <- map_chr(last_tweet_unparsed[[1]]$extended_entities$media, ~.x$alt_text)
  print(media_alt_text)
} else {
  cat("这条推文没有图片或未设置图片描述")
}

# 批量获取推文并提取所有图片描述
tweets_unparsed <- rtweet::get_timeline(user = 'esquinadobrasil', 
                                        n = 10, 
                                        parse = FALSE)

all_alt_text <- map(tweets_unparsed, function(tweet) {
  if (!is.null(tweet$extended_entities$media)) {
    map_chr(tweet$extended_entities$media, ~.x$alt_text)
  } else {
    NA_character_
  }
})

# 整理成结构化数据框
tweet_alt_df <- data.frame(
  tweet_id = map_chr(tweets_unparsed, ~.x$id_str),
  alt_text = unlist(all_alt_text)
)

head(tweet_alt_df)

补充说明

  • 只有当推文的图片主动设置了替代文本时,alt_text字段才会存在;未设置的话该字段会缺失,需要提前做空值判断。
  • 如果单条推文包含多张图片,每张图片的alt文本会单独返回,可根据需求选择合并或单独存储。

内容的提问来源于stack exchange,提问作者rafa.pereira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:20:23