You need to enable JavaScript to run this app. 如何使用R解析亚马逊产品元数据并生成指定格式CSV导入数据框
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R解析亚马逊产品元数据并生成指定格式CSV导入数据框

R 实现亚马逊产品元数据转换为结构化DataFrame教程

这类半结构化文本以产品Id为单位分块存储,我们只需要先按块拆分数据、跳过已下架产品、再逐块提取目标字段即可,完整实现步骤如下:

步骤1:读取原始文本文件

# 读取原始元数据文件,按行存储
raw_lines <- readLines("你的元数据文件存储路径.txt", warn = FALSE)
# 过滤空行,避免后续拆分出错
raw_lines <- raw_lines[raw_lines != ""]

步骤2:按产品拆分文本块

# 定位所有产品块的起始行(即Id行的位置)
id_pos <- which(startsWith(trimws(raw_lines), "Id: "))
# 拆分得到每个产品对应的所有行内容
product_blocks <- lapply(seq_along(id_pos), function(i) {
  start <- id_pos[i]
  end <- ifelse(i == length(id_pos), length(raw_lines), id_pos[i+1] - 1)
  raw_lines[start:end]
})

步骤3:逐块提取目标字段

我们需要提取的字段为id、title、group、salesrank、review_cnt(总评论数)、downloads(已下载评论数)、rating(平均评分):

# 初始化结果存储列表
result <- list()

for (block in product_blocks) {
  # 跳过已下架的产品
  if (any(grepl("discontinued product", block, fixed = TRUE))) next
  
  # 提取产品id
  id_line <- block[startsWith(trimws(block), "Id:")]
  id <- as.integer(trimws(sub("Id:\\s*", "", id_line)))
  
  # 提取产品标题
  title_line <- block[startsWith(trimws(block), "title:")]
  title <- trimws(sub("title:\\s*", "", title_line))
  
  # 提取产品类别
  group_line <- block[startsWith(trimws(block), "group:")]
  group <- trimws(sub("group:\\s*", "", group_line))
  
  # 提取销售排名
  salesrank_line <- block[startsWith(trimws(block), "salesrank:")]
  salesrank <- as.integer(trimws(sub("salesrank:\\s*", "", salesrank_line)))
  
  # 提取评论相关字段
  review_line <- block[startsWith(trimws(block), "reviews:")]
  review_info <- strsplit(trimws(review_line), "\\s+")[[1]]
  review_cnt <- as.integer(review_info[3])
  downloads <- as.integer(review_info[5])
  rating <- as.numeric(review_info[8])
  
  # 存入结果列表
  result[[length(result)+1]] <- data.frame(
    id = id,
    title = title,
    group = group,
    salesrank = salesrank,
    review_cnt = review_cnt,
    downloads = downloads,
    rating = rating,
    stringsAsFactors = FALSE
  )
}

# 合并为最终的DataFrame
final_df <- do.call(rbind, result)

步骤4:导出为CSV(可选)

如果需要导出为你示例中的CSV格式,可执行以下代码:

write.csv(final_df, "亚马逊产品元数据.csv", row.names = FALSE, quote = TRUE)

注意事项:如果你的原始文件存在字段缺失的情况,可在提取逻辑中增加空值判断,避免运行报错;如果需要提取ASIN、同类产品、分类、单条评论等更多字段,在现有提取逻辑中新增对应匹配规则即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:45:07