[R-br] Ler dados de html
walmes .
walmeszeviani em gmail.com
Quarta Maio 22 14:06:27 BRT 2013
Ok Henrique,
EXCELENTE a sua solução. Eu tava implementando uma longa/cara solução via
expressão regular. Aqui segue o seu código aumentado para ler todas as
letras do alfabeto.
#------------------------------------------------------------------------------------------
# solução Dallazuanna
library(XML)
lines <- readLines("http://vestibular.ufrgs.br/listao/letra_U.html")
h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE)
str(h)
da <- as.data.frame(sapply(sprintf("//div[@class='span%d']", 1:4),
xpathApply, doc=h, xmlValue))
str(da)
da <- as.data.frame(do.call(cbind, lapply(da, unlist)),
stringsAsFactors=FALSE)
names(da) <- c("ins","nome","sem","cur")
da
#------------------------------------------------------------------------------------------
# aplicando para todas as letras
u <- paste("http://vestibular.ufrgs.br/listao/letra_", LETTERS, ".html",
sep="")
names(u) <- LETTERS
leia <- function(u){
lines <- readLines(u)
h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE)
da <- as.data.frame(sapply(sprintf("//div[@class='span%d']", 1:4),
xpathApply, doc=h, xmlValue))
da <- as.data.frame(do.call(cbind, lapply(da, unlist)),
stringsAsFactors=FALSE)
if(nrow(da)>0){
names(da) <- c("ins","nome","sem","cur")
return(da)} else return(NULL)
}
tudo <- lapply(u, leia)
str(tudo)
sapply(tudo, is.null)
# pronto
tudo <- as.data.frame(do.call(rbind, tudo))
str(tudo)
tudo$sem <- factor(tudo$sem)
tudo$cur <- factor(tudo$cur)
cbind(sort(table(tudo$cur), decreasing=TRUE))
#------------------------------------------------------------------------------------------
Grato.
Walmes.
==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes em ufpr.br
skype: walmeszeviani
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130522/22447123/attachment.html>
Mais detalhes sobre a lista de discussão R-br