如何使用readHTMLTable从HTML表中获取超链接?

时间:2013-05-31 03:14:33

标签: xml r

我有一个XMLNodeSet对象,其中包含一个带超链接的HTML表。当我使用readHTMLTable转换为data.frame时,它工作得很好,但超链接信息丢失了。有没有办法在data.frame中创建包含超链接的附加列?

也许一个更简单的例子是从这里的http://stoptb.org/countries/tbteam/reg_wpro.asp表中提取超链接。

table <- readHTMLTable("http://stoptb.org/countries/tbteam/reg_wpro.asp")

df <- data.frame(table[[8]])

1 个答案:

答案 0 :(得分:4)

readHTMLTable调用xmlValue作为elFun的默认值。您可以简单地定义一个不同的函数来提取超链接:

require(XML)
regURL <- "http://stoptb.org/countries/tbteam/reg_wpro.asp"
table <- readHTMLTable(regURL, stringsAsFactors = FALSE)

df <- table[[8]]


hrefFun <- function(x){
  xpathSApply(x,'./a',xmlAttrs)  
}
table2 <- readHTMLTable(regURL, elFun = hrefFun, stringsAsFactors = FALSE)

df2 <- table2[[8]]

df$URLS <- df2$V2