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 3573VoIP: (3361 3600) 1053 1173
e-mail: walmes@ufpr.br
skype: walmeszeviani
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmeslinux user number: 531218
==========================================================================