在 R XML Xpath 中,@href 返回文本“href”

Kev*_*n M 2 xml xpath r

我正在尝试获取href使用 Xpath 代码的内容,如这两篇 文章中所述。不幸的是,除了 URL 之外,代码还返回了实际的文本“href”和几个空格。我怎样才能避免这种情况?

library(XML)

html <- readLines("http://www.msu.edu")
html.parse <- htmlParse(html)
Node <- getNodeSet(html.parse, "//div[@id='MSU-top-utilities']//a/@href")
Node[[1]]

# > Node[[1]]
#                  href 
# "students/index.html" 
# attr(,"class")
# [1] "XMLAttributeValue"
Run Code Online (Sandbox Code Playgroud)

hrb*_*str 5

它只是一个命名的字符向量。你可以做:

as.character(Node[[1]])
Run Code Online (Sandbox Code Playgroud)

这会给你

## [1] "students/index.html"
Run Code Online (Sandbox Code Playgroud)

或者,这里有一个更好的成语xml2

library(xml2)

doc <- read_html("http://www.msu.edu")
nodes <- xml_find_all(doc, "//div[@id='MSU-top-utilities']//a")
xml_attr(nodes, "href")

## [1] "students/index.html"      "faculty-staff/index.html" "alumni/index.html"       
## [4] "businesses/index.html"    "visitors/index.html"   
Run Code Online (Sandbox Code Playgroud)