R - 从特定行

时间:2016-05-19 10:06:18

标签: html r xpath html-parsing

我正在尝试使用htmlTreeParse从一组巨大的解析html文件中删除一些信息。我正在使用xpathSApply从我需要的字段中提取信息。这些字段按顺序排序,因此以下字段的信息始终低于前一个字段的信息。

xpathSApply函数需要永远,我想知道是否有办法让它更有效率。我坚信xpathSApply函数从一开始就开始读取解析html文件,因此,它读取了许多已经被读取但不包含任何有用数据的html代码。我试图弄清楚是否有办法告诉xpathSApply从上一次读完的那一行开始阅读。

代码如下:

    nomcorpN <- xpathSApply(doc.html, "//*//input[@name='_ctl0:PlaceHolderContenido:nomcorpN']/@value")

    codigoINE <- xpathSApply(doc.html, "//*//input[@name='_ctl0:PlaceHolderContenido:codigoINE']/@value")

    codigo <- xpathSApply(doc.html, "//*//input[@name='_ctl0:PlaceHolderContenido:codigo']/@value")

#...

等等很多不同的领域。我想保留找到nomcorpN信息的行,然后从该行开始查找codigoINE。保持找到codigoINE的行,然后开始在该行中查找codigo ...

有没有办法实现这一目标? 谢谢大家!

1 个答案:

答案 0 :(得分:0)

试试这个

library(rvest)
read_html(file) %>%
    html_nodes(xpath = "//input[contains(@name,'_ctl0:PlaceHolderContenido')]/@value")%>%
    html_text()

它只提供名称中包含input的{​​{1}}个节点中包含的值列表。

或者有关这些节点的更多详细信息:

'_ctl0:PlaceHolderContenido'