我想从此站点抓取名为“Constraints”的弹出窗口的内容:https://dataviewer.pjm.com/dataviewer/pages/public/lmp.jsf(单击左侧的Constraints链接后弹出窗口显示)。
我需要获得下面的Constraint,Contingency和Shadow Price数据。使用SelectorGadget,我将该信息标识为“#frmConstraints \:tblConstraints_data .col-left”
我可以在这里看到我想要的信息(类“col-left”的信息):
我运行这个R代码,无济于事。 const_info没有返回任何内容。
library(rvest)
library(stringr)
library(plyr)
library(dplyr)
library(ggvis)
library(knitr)
options(digits = 4)
session <-
rvest::html_session('https://dataviewer.pjm.com/dataviewer/pages/public/lmp.jsf')
constraints_page <-
rvest::follow_link(x=session,css='#formLeftPanel\\:constraintLink')
constraints_html <- xml2::read_html(constraints_page)
const_info <- constraints_html %>%
rvest::html_nodes('#frmConstraints\\:tblConstraints_data .col-left') %>%
rvest::html_text()
我还运行了PhantomJS把它变成了一个html页面,但我想要的信息不在那里。
为了解决上述问题,我使用PhantomJS运行了以下代码。
// scrape_dataviewer.js
var webPage = require('webpage');
var page = webPage.create();
var fs = require('fs');
var path = 'dataviewer.html'
page.open('https://dataviewer.pjm.com/dataviewer/pages/public/lmp.jsf', function (status) {
var content = page.content;
fs.write(path,content,'w')
phantom.exit();
});
我熟悉R和rvest,甚至还有PhantomJS。我看到我可能需要R包V8。但在一天结束时,我无法抓住这些信息。
答案 0 :(得分:0)
我无法得到答案,但我已经尽可能地接受了它,而没有进行额外的研究。这会使您获得所需数据,但我只能返回日期。我相信我需要在html会话中选择每个日期,然后提取与每个日期相关的数据。以下是我的代码:
session <- rvest::html_session('https://dataviewer.pjm.com/dataviewer/pages/public/lmp.jsf')
constraints_page <- rvest::follow_link(x=session,css='#formLeftPanel\\:constraintLink')
constraints_html <- xml2::read_html(constraints_page)
constraints_html %>%
rvest::html_nodes('#frmConstraints') %>%
rvest::html_text()
我打算将此添加到评论中,但我没有足够的声望点,这不是一个完整的答案抱歉!