用rvest刮网

用rvest刮网,r,web-scraping,rvest,R,Web Scraping,Rvest,我试图从r包rvest中使用read_html获取一个数据表 我尝试了以下代码: library(rvest) raw <- read_html("https://demanda.ree.es/movil/peninsula/demanda/tablas/2016-01-02/2") 对下一步该怎么做有什么建议吗 谢谢 该网站正在使用angular打电话获取数据。您可以使用该调用获取原始JSON。响应不是纯JSON,因此您不能只从JSON(url)运行,您必须下载数据并在解析之前除去

我试图从r包rvest中使用read_html获取一个数据表

我尝试了以下代码:

library(rvest)
  raw <- read_html("https://demanda.ree.es/movil/peninsula/demanda/tablas/2016-01-02/2")
对下一步该怎么做有什么建议吗


谢谢

该网站正在使用angular打电话获取数据。您可以使用该调用获取原始JSON。响应不是纯JSON,因此您不能只从JSON(url)运行
,您必须下载数据并在解析之前除去非JSON内容

library(jsonlite)
library(httr)
url <- "https://demanda.ree.es/WSvisionaMovilesPeninsulaRest/resources/demandaGeneracionPeninsula?callback=angular.callbacks._2&curva=DEMANDA&fecha=2016-01-02"
a <- GET(url)
a <- content(a, as="text")
# get rid of the non-JSON stuff...
a <- gsub("^angular.callbacks._2\\(", "", a)
a <- gsub("\\);$", "", a)
df <- fromJSON(a, simplifyDataFrame = TRUE)
library(jsonlite)
图书馆(httr)

太棒了,谢谢!你能解释一下你在哪里找到那个电话吗?在Chrome中使用“inspect”可以找到它吗?非常酷,谢谢你的解释。这对我来说很有用。@cory看起来是一个有趣的解决方案……你认为你能帮我做这个()吗?
html_nodes(raw,xpath = '//*[(@id = "tabla_generacion")]//*[contains(concat( " ", @class, " " ), concat( " ", "ng-scope", " " ))]')
library(jsonlite)
library(httr)
url <- "https://demanda.ree.es/WSvisionaMovilesPeninsulaRest/resources/demandaGeneracionPeninsula?callback=angular.callbacks._2&curva=DEMANDA&fecha=2016-01-02"
a <- GET(url)
a <- content(a, as="text")
# get rid of the non-JSON stuff...
a <- gsub("^angular.callbacks._2\\(", "", a)
a <- gsub("\\);$", "", a)
df <- fromJSON(a, simplifyDataFrame = TRUE)