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

使用rvest抓取维基百科:移除行内引用编号问题

解决rvest抓取维基百科表格时移除行内引用编号的问题

我之前也碰到过维基百科表格里这种<sup>标签包裹的引用编号问题——直接用html_table()抓取的话,这些小数字会跟着文本一起被提取出来,确实很影响数据整洁度。

其实解决思路很简单:在提取表格之前,先把表格里所有的<sup>节点删掉,再进行表格转换。修改后的代码如下:

library(rvest)
library(tidyverse)

# 读取目标页面并定位到指定表格
wiki_page <- read_html("https://de.wikipedia.org/wiki/Ergebnisse_der_Landtagswahlen_in_der_Bundesrepublik_Deutschland")
target_table <- wiki_page %>% html_nodes(xpath = '//*[@id="mw-content-text"]/div/table[10]')

# 移除表格内所有包含引用编号的sup标签
target_table %>% html_nodes("sup") %>% html_remove()

# 提取清理后的表格数据
clean_table <- target_table %>% html_table() %>% .[[1]]

# 可以查看前几行验证效果
head(clean_table)

代码解释:

  • 我们先单独定位到目标表格节点,而不是直接链式调用到底,这样能对表格节点做预处理
  • html_nodes("sup")会选中表格里所有的引用编号标签,html_remove()则直接删除这些节点——这样它们包含的数字就不会被包含在后续提取的文本里了
  • 最后再用html_table()提取表格,得到的就是没有多余引用编号的干净数据

如果之后碰到其他类似的冗余标签(比如某些注释类标签),也可以用同样的逻辑,把"sup"换成对应的标签选择器即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:38:45