如何用R语言的rvest包提取HTML标签的innerHTML而非outerHTML?
在R中提取HTML标签的innerHTML(不带外层标签的内容)
当用rvest包的as.character()处理选中的HTML标签时,会返回包含外层标签的outerHTML,无法直接得到仅包含标签内部内容的innerHTML。以下是可行的解决方法:
方法:使用xml2::xml_contents()提取内部内容
xml_contents()可以获取目标标签下的所有子节点(包括纯文本和嵌套的HTML标签),完全不包含外层标签,之后只需将节点内容拼接成完整字符串即可:
library(rvest) html = '<html><body>Hi <b>name</b></body></html>' # 提取body标签的innerHTML inner_html <- read_html(html) |> html_element('body') |> xml2::xml_contents() |> as.character() |> paste(collapse = "") # 输出结果 inner_html
运行后返回:
[1] "Hi <b>name</b>"
这个方案能精准保留内部的所有HTML结构和文本,完全符合提取innerHTML的需求。
内容的提问来源于stack exchange,提问作者richarddmorey
相关产品推荐
相关产品推荐

