【问题标题】:Parse table data into R but it's blank, javascript?将表数据解析为 R 但它是空白的,javascript?
【发布时间】:2020-04-16 18:20:43
【问题描述】:

我的第一篇文章和一个 R 初学者非常耐心地请求我是否应该在其他地方找到我的问题的答案。

我正在尝试用从 CME 的多个站点提取的数据拼凑一个表格(https://www.cmegroup.com/trading/energy/crude-oil/western-canadian-select-wcs-crude-oil-futures.html 就是其中之一)。

我尝试使用 rvest,但得到一个空白表。 我认为这是因为用于实时填充表格的 Javascript?我在这个网站上摸索着寻找类似的问题,但还没有弄清楚如何最好地提取这些数据。非常感谢任何帮助。

library(rvest)

library(dplyr)

WCS_page <- "https://www.cmegroup.com/trading/energy/crude-oil/canadian-heavy-crude-oil-net-energy-index-futures_quotes_globex.html"
WCS_diff <- read_html(WCS_page)

month <- WCS_diff %>%
    rvest::html_nodes('th') %>%
    xml2::xml_find_all("//scope[contains(@col, 'Month')]") %>%
    rvest::html_text()

price <- WCS_diff %>%
    rvest::html_nodes('tr') %>%
    xml2::xml_find_all("//td[contains(@class, 'quotesFuturesProductTable1_CLK0_last')]") %>%
    rvest::html_text()

WTI_df <- data.frame(month, price)

knitr::kable(
    WTI_df %>% head (10))


【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    是的,页面正在使用JS加载数据。

    检查的简单方法是view source,然后搜索您在表格中看到的一些文本。例如,“May”这个词永远不会出现在原始 HTML 中,所以它一定是稍后加载的。

    下一步是使用Chrome DevTools 之类的东西来检查发出的网络请求。在这种情况下,有一个明显的赢家,您的结构化数据就是从这里传下来的:

    https://www.cmegroup.com/CmeWS/mvc/Quotes/Future/6038/G

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多