解析R中的HTML文件

前端之家收集整理的这篇文章主要介绍了解析R中的HTML文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从网站上读取 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,function(x) { list(name=xmlName(x),content=xmlValue(x)); })

> doc.html.name.value[[1]]
$name
[1] "h2"

$content
[1] "\r\nGeorge Eliot\r\n"

猜你在找的HTML相关文章