我正在尝试在动态网页中抓取一个表:
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
识别第一列,并将随后的所有七个列都放在同一字符串中。
关于如何解决该问题的任何提示?提前致谢。
答案 0 :(得分:0)
我想出了解决方案:
删除:
dataX <- elemX$getElementText()
dataX[[1]]
并添加:
hlink<- read_html(elemX[[1]]$getPageSource()[[1]] )
table <- html_table(hlink,fill = T)
tf <- table[[2]]
rvest
函数可以解决问题。