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

如何用rvest提取HTML中与<p>标签对应的<ul>列表并转为数据框或列表?

用R的rvest关联HTML中

标题与对应

    列表的方法

核心思路是针对每个<p>标签,精准定位其紧随其后的第一个<ul>,以此实现标题和对应列表项的绑定,具体实现如下:

library(rvest)
library(purrr)
library(dplyr)

# 假设tmp是已获取的<div class="main--content">节点
# 提取所有标题文本(自动清理多余换行/空格)
titles <- tmp %>% 
  html_elements("p") %>% 
  html_text2()

# 为每个标题匹配对应列表项
list_content <- tmp %>% 
  html_elements("p") %>% 
  # 用XPath定位当前<p>后面的第一个<ul>
  map(~ .x %>% 
        html_element(xpath = "following-sibling::ul[1]") %>% 
        html_elements("li") %>% 
        html_text2())

# 生成数据框结构(标题+对应列表)
result_df <- tibble(
  标题 = titles,
  列表项 = list_content
)

# 或者生成命名列表(键为标题,值为对应列表项)
result_list <- setNames(list_content, titles)

补充处理

如果存在部分<p>后无对应<ul>的情况,可过滤掉空列表数据:

cleaned_df <- result_df %>% 
  filter(lengths(列表项) > 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:26:16