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: [email protected]
skype: walmeszeviani
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código 
mínimo reproduzível.

Responder a