首页 > 解决方案 > 如何使用 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,我检查了元素并通过在 pan 中单击右键来复制 Xpath。我也尝试过使用 rvest。

library(rvest)

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

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

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

标签: htmlrweb-scrapingrvestrselenium

解决方案


该表位于源为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]])

此代码从上一个 url 中获取所有表,html_table并选择您想要的表(这是列表的第三个元素)。


推荐阅读