如何使用Rselenium从表中获取特定数据?

时间:2018-08-29 15:01:48

标签: html r web-scraping rvest rselenium

我正在尝试抓取我认为正在使用Java脚本的表。我想获取索引的数据(即TSX)。我想获取所有指数的“前一日数据”。我正在使用Rselenium抓取数据,但无法找到元素。

以下是我的代码,用于删除名为TSX的索引的前一天数据:

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

remDr$navigate("http://bmgfunds.com/interactive-charts/")

elem <- remDr$findElement(using="xpath", value="//*[@id='indices-quotes']/table/tbody/tr[1]/td[2]")

为了获得Xpath,我检查了元素,并通过右键单击平移来复制Xpath。 我也尝试使用rvest。

library(rvest)

st_table <- read_html("http://bmgfunds.com/interactive-charts/")
table<-html_nodes(st_table, "tbody tr")

不幸的是,我得到零元素{xml_nodeset (0)}

任何建议或帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

该表格位于来源为http://integration.nfusionsolutions.biz/client/bullionmanagementgroup/module/quotechartfull的iframe中,因此您可以从此处获取表格:

st_table <- read_html("http://integration.nfusionsolutions.biz/client/bullionmanagementgroup/module/quotechartfull") 
(table <- html_table(st_table)[[3]])

此代码使用html_table从上一个URL中获取所有表,然后选择所需的表(这是列表的第三个元素)。