[英]Scrape data using R from Javascript pop-up window
我要从此站点刮取名为“约束”的弹出窗口的内容: https : //dataviewer.pjm.com/dataviewer/pages/public/lmp.jsf (单击“约束”链接后将显示弹出窗口在左侧)。
我需要获得下面显示的约束,意外事件和影子价格数据。 使用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。 但是最终,我无法获取此信息。
我无法找到答案,但我在没有其他研究的情况下已尽其所能。 这样可以将所需的数据带到表中,但是我只能返回日期。 我相信我需要在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()
我打算将其添加到评论中,但是我的信誉点不够,抱歉,这不是一个完整的答案!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.