用R刮擦期货数据

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

我正在努力从ICE抓取能源期货数据,并且需要有关所涉及的js的帮助。

我正在处理ICE Futures数据,尤其是我想访问NGX FIN FF,7A的FP(CA / GJ),AB-NIT合同结算。因此,我希望他们的下拉菜单看起来像这样,然后单击“提交”并读取到R中的数据框。drop down menu configuration

我被困在“我需要使用Rselenium来做到这一点吗?”问题的阶段。

我已经查看过devtools,看我是否可以解析执行,但是我的JS较弱,所以希望你们中的一个可以指出正确的方向。

该按钮正在执行jquery.min.js,但这是我目前所能获得的。

[不幸的是,我已经尝试了许多Rselenium示例代码片段,但还没有能够运行而没有错误。仍在努力,但是如果有人有快速的答案可以帮助您,将不胜感激。如果我走得更远,将随着我的更新。

谢谢。

javascript r httr rselenium
1个回答
0
投票

我想我已经弄明白了,多亏了一位朋友:

library(httr)
library(tidyverse)
library(lubridate)
library(rvest)
library(janitor)


ngx_read<-function(series_id,settlement)
{
query = list(
  htmlReport="",
  reportId=254,
  criteria.group="Natural Gas",
  criteria.selectedMarket=series_id,
  criteria.selectedTimePeriod=settlement,
  rcMode=2
  )
#Settlement can be:
  #"Current Settlement"
  #Previous Day Settlement
  #Day-2 Settlement
  #Day-3 Settlement
  #Day-4 Settlement

html_doc<-read_html(POST("https://www.theice.com/marketdata/reports/ngx/DailySettlementPrices.shtml", body = query))

html_nodes(html_doc, "table")[[1]]%>%html_table(fill = TRUE) %>% clean_names()%>%
  mutate(begin_date=ymd(begin_date),end_date=ymd(end_date),net_oi=as.numeric(gsub(",","",net_oi)),
         settle=settlement,date=Sys.Date())
}

ngx_data<-ngx_read("NGX Fin FF, FP for 7A, (CA/GJ), AB-NIT","Previous Day Settlement")
© www.soinside.com 2019 - 2024. All rights reserved.