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

如何在R中将爬取的HTML文本拆分生成多列数据表?

解决方案

针对MyAnimeList中.mt4元素合并的信息拆分需求,这里提供两种高效的R语言处理方案,可直接与你已有的title、rating数据表合并:

方法一:基于strsplit生成的列表处理

你的代码已经通过strsplit("\n")把每个条目拆成了包含3个元素的列表,直接将列表转换为数据框后,和已有数据合并即可:

library(dplyr)
library(purrr)
library(tibble)

# 将info列表转换为含media、serialization、members列的数据框
info_df <- map_dfr(info, ~tibble(
  media = .x[1],
  serialization = .x[2],
  members = .x[3]
))

# 与已有的title、rating数据表合并(假设你的已有表名为manga_df)
final_df <- bind_cols(manga_df, info_df)

方法二:直接处理未拆分的字符串(更简洁)

去掉strsplit后,用tidyr::separate直接按换行符拆分字符串,一步生成目标列:

library(dplyr)
library(tidyr)
library(rvest)
library(tibble)

# 获取未拆分的原始字符串
info_str <- html_nodes(manga, ".mt4") %>% html_text2()

# 拆分字符串并生成数据框
info_df <- tibble(raw_info = info_str) %>%
  separate(raw_info, into = c("media", "serialization", "members"), sep = "\n")

# 合并数据
final_df <- bind_cols(manga_df, info_df)

可选优化:转换members列为数值型

如果需要把members列从带逗号的字符转为数值,添加以下处理:

final_df <- final_df %>%
  mutate(members = readr::parse_number(members))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:32:40