我正在努力从ICE抓取能源期货数据,并且需要有关所涉及的js的帮助。
我正在处理ICE Futures数据,尤其是我想访问NGX FIN FF,7A的FP(CA / GJ),AB-NIT合同结算。因此,我希望他们的下拉菜单看起来像这样,然后单击“提交”并读取到R中的数据框。
我被困在“我需要使用Rselenium来做到这一点吗?”问题的阶段。
我已经查看过devtools,看我是否可以解析执行,但是我的JS较弱,所以希望你们中的一个可以指出正确的方向。
该按钮正在执行jquery.min.js,但这是我目前所能获得的。
[不幸的是,我已经尝试了许多Rselenium示例代码片段,但还没有能够运行而没有错误。仍在努力,但是如果有人有快速的答案可以帮助您,将不胜感激。如果我走得更远,将随着我的更新。
谢谢。
我想我已经弄明白了,多亏了一位朋友:
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")