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

问题描述 投票:0回答:1

我正在尝试抓取一个我认为正在使用 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)}

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

html r web-scraping rvest rselenium
1个回答
1
投票

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

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

此代码使用

html_table
从上一个 url 中获取所有表格,并选择所需的表格(这是列表的第三个元素)。

© www.soinside.com 2019 - 2024. All rights reserved.