RSelenium $ getElementText无法正确解析表

时间:2018-11-16 14:46:09

标签: rselenium

我正在尝试在动态网页中抓取一个表:

library(RSelenium)
driver<- rsDriver()
remDr <- driver[["client"]]

url.fv.op <- "http://www2.aneel.gov.br/aplicacoes/capacidadebrasil/capacidadebrasil.cfm"
remDr$navigate(url.fv.op) # navigates to webpage
click <- "body > font > table:nth-child(8) > tbody > tr:nth-child(1) > td:nth-child(1) > table > tbody > tr:nth-child(7) > td:nth-child(1) > font > a"
load_page <- remDr$findElement(using = "css selector", value = click) 
load_page$clickElement() # Web page that contains the table of interest, with 8 columns

xpath <- "/html/body/table[2]"
elemX <- remDr$findElement(using="xpath", value=xpath) # get big table in text string
dataX <- elemX$getElementText()
dataX[[1]]

感兴趣的表有八列(请参见上面的代码中的注释)。但是,dataX[[1]]中的输出仅通过分隔符/n识别第一列,并将随后的所有七个列都放在同一字符串中。 关于如何解决该问题的任何提示?提前致谢。

1 个答案:

答案 0 :(得分:0)

我想出了解决方案:

删除:

dataX <- elemX$getElementText()
dataX[[1]]

并添加:

hlink<- read_html(elemX[[1]]$getPageSource()[[1]] )
table <- html_table(hlink,fill = T)
tf <- table[[2]]

rvest函数可以解决问题。

相关问题