我想从网站读取 HTML 文件。具体来说,我想从 gutenberg.org 阅读 HTML 格式的书籍。每章的标题用标签“h2”标记,每章的内容在“h2”之后的段落标签“p”中。使用 XML 包,我可以获得每个标签的值或完整的 HTML 代码。
以下是使用 George Elliot 的 Middlemarch 的示例代码:
library(XML)
doc.html = htmlTreeParse('http://www.gutenberg.org/files/145/145-h/145-h.htm',
useInternal = TRUE)
doc.value <- xpathApply(doc.html, '//h2|//p', xmlValue)
doc.html.value <- xpathApply(doc.html, '//h2|//p')
doc.value 包含一个列表,其中每个元素都是标签的内容,但我不知道是 h2 标签还是 p 标签。另一方面,doc.html.value 包含一个列表,其中包含每个标签的 html 代码。这为我提供了它是“h2”还是“p”标签的信息,但它还包含许多我不需要的额外代码(如样式信息等)。
我的问题:是否有一种简单的方法可以仅获取标签的类型和标签的值,而不获取与其关联的其他信息?
查看文档xmlValue
表明还有另一个函数,其名称为xmlName
,它仅提取标签的名称。使用这两个,可以计算出你想要的:
doc.html.name.value <- xpathApply(doc.html, '//h2|//p', function(x) { list(name=xmlName(x), content=xmlValue(x)); })
> doc.html.name.value[[1]]
$name
[1] "h2"
$content
[1] "\r\nGeorge Eliot\r\n"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)