2016-03-31 24 views
2

R paketinden gelen read_html kullanarak bir veri tablosu tutmaya çalışıyorum.Römorkla web kazıma

Ben aşağıdaki kodu denedim:

'node:<externalptr>' and 'doc:<externalptr>' 
: Ben 'ham' bakınız beri

library(rvest) 
    raw <- read_html("https://demanda.ree.es/movil/peninsula/demanda/tablas/2016-01-02/2") 

Ben, yukarıdaki tabloda verileri çekti inanmıyorum 2 listesidir

html_nodes(raw,xpath = '//*[(@id = "tabla_generacion")]//*[contains(concat(" ", @class, " "), concat(" ", "ng-scope", " "))]') 

Herhangi tavsiye sonraki denemek için ne:

Ben de xpath kapma denedim?

Teşekkürler.

cevap

4

Bu web sitesi, verileri almak için arama yapmak için köşeli ayraç kullanıyor. Ham JSON'u almak için bu aramayı kullanabilirsiniz. Yanıt saf JSON değil, bu yüzden sadece fromJSON(url)'u çalıştıramazsınız, verileri indirmeniz ve ayrıştırmadan önce JSON dışındaki şeylerden kurtulmanız gerekir.

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) 

Bunu, Chrome'da F12'ye basarak ve "Kaynaklar" sekmesine bakarak buldum. Tabloyu dolduracak veriler bir yerden gelmek zorundaydı ... bu yüzden nerede olduğunu anlamanın bir meselesi. Tabloyu kazımak için kullanamadım. Verileri almak için aramada R'nin kromda olduğu gibi mi yürütüldüğünden emin değilim ... bu yüzden kazımak için hiçbir veri bulunmuyor olabilir.

enter image description here

+0

Awesome, thanks! Bu aramayı nerede bulduğunuzu açıklamanız mümkün mü? Chrome'da "incelemek" kullanılarak bulunabilir mi? – cam333

+0

@ cam333 Cevabımı – cory

+0

çok ayrıntılı bir şekilde güncelledim, açıklama için teşekkürler. Bu benim için kullanışlı olacak. – cam333

İlgili konular