从HTML解析文档中提取信息

时间:2014-06-30 09:17:34

标签: r

我是HTML和XML处理的新手,并且对提取已解析的HTML文档的某些部分有疑问。以下文档doc是使用htmlTreeParse包中的XML生成的,可以使用以下代码进行复制。

访问 href="..." 时,每行末尾的四位数会发生什么变化?我需要提取这些数字,但它们似乎消失。

library(XML)
doc <- htmlTreeParse("http://www.retrosheet.org/gamelogs/index",
                     useInternalNodes = TRUE)
doc["//a/@href"][100:101]
# [[1]]
#                                            href 
# "http://www.retrosheet.org/gamelogs/gl1924.zip" 
# attr(,"class")
# [1] "XMLAttributeValue"
# 
# [[2]]
#                                            href 
# "http://www.retrosheet.org/gamelogs/gl1925.zip" 
# attr(,"class")
# [1] "XMLAttributeValue"

所以基本上,从下面我想提取最后四位数。结果应该是向量

[1] 1871 1872 ... ... 2012 2013

在这里查看html文档

...
  <br/>
    </b>
    <pre>
    <a href="http://www.retrosheet.org/gamelogs/gl1871.zip">1871</a>
    <a href="http://www.retrosheet.org/gamelogs/gl1872.zip">1872</a>
    ...                                                     ....
    ...                                                     ....
    <a href="http://www.retrosheet.org/gamelogs/gl2012.zip">2012</a>
    <a href="http://www.retrosheet.org/gamelogs/gl2013.zip">2013</a>
    </pre>
    <a href="http://www.retrosheet.org/gamelogs/glws.zip">World Series</a>
    <br/>
    <a href="http://www.retrosheet.org/gamelogs/glas.zip">All-Star</a>
    <br/>

1 个答案:

答案 0 :(得分:1)

如果您想要值而不是href属性,请尝试以下操作之一:

doc["//a/text()"][100:101] 
sapply(doc["//a"][100:101], xmlValue) 
sapply(doc["//a"][100:101], xmlValue, trim = TRUE)