<font face="trebuchet ms,sans-serif">Ok Henrique,<br><br>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.<br>
<br><span style="font-family:courier new,monospace">#------------------------------------------------------------------------------------------<br># solução Dallazuanna<br><br>library(XML)<br><br>lines <- readLines("<a href="http://vestibular.ufrgs.br/listao/letra_U.html">http://vestibular.ufrgs.br/listao/letra_U.html</a>")<br>
h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE)<br>str(h)<br>da <- as.data.frame(sapply(sprintf("//div[@class='span%d']", 1:4),<br> xpathApply, doc=h, xmlValue))<br>
str(da)<br>da <- as.data.frame(do.call(cbind, lapply(da, unlist)),<br> stringsAsFactors=FALSE)<br>names(da) <- c("ins","nome","sem","cur")<br>da<br><br>#------------------------------------------------------------------------------------------<br>
# aplicando para todas as letras<br><br>u <- paste("<a href="http://vestibular.ufrgs.br/listao/letra_">http://vestibular.ufrgs.br/listao/letra_</a>", LETTERS, ".html", sep="")<br>names(u) <- LETTERS<br>
<br>leia <- function(u){<br> lines <- readLines(u)<br> h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE)<br> da <- as.data.frame(sapply(sprintf("//div[@class='span%d']", 1:4),<br>
xpathApply, doc=h, xmlValue))<br> da <- as.data.frame(do.call(cbind, lapply(da, unlist)),<br> stringsAsFactors=FALSE)<br> if(nrow(da)>0){<br> names(da) <- c("ins","nome","sem","cur")<br>
return(da)} else return(NULL)<br>}<br><br>tudo <- lapply(u, leia)<br>str(tudo)<br>sapply(tudo, is.null)<br><br># pronto<br>tudo <- as.data.frame(do.call(rbind, tudo))<br>str(tudo)<br><br>tudo$sem <- factor(tudo$sem)<br>
tudo$cur <- factor(tudo$cur)<br><br>cbind(sort(table(tudo$cur), decreasing=TRUE))<br><br>#------------------------------------------------------------------------------------------<br></span><br>Grato.<br>Walmes.<br><br clear="all">
</font><div><span style="font-family:trebuchet ms,sans-serif">==========================================================================</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">Walmes Marques Zeviani</span><br style="font-family:trebuchet ms,sans-serif">
<span style="font-family:trebuchet ms,sans-serif">LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">Departamento de Estatística - Universidade Federal do Paraná</span><br style="font-family:trebuchet ms,sans-serif">
<span style="font-family:trebuchet ms,sans-serif">fone: (+55) 41 3361 3573</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">VoIP: (3361 3600) 1053 1173</span><br style="font-family:trebuchet ms,sans-serif">
<span style="font-family:trebuchet ms,sans-serif">e-mail: <a href="mailto:walmes@ufpr.br" target="_blank">walmes@ufpr.br</a><br>skype: walmeszeviani<br style="font-family:trebuchet ms,sans-serif"></span><span style="font-family:trebuchet ms,sans-serif">twitter: @walmeszeviani</span><br style="font-family:trebuchet ms,sans-serif">
<span style="font-family:trebuchet ms,sans-serif">homepage: <a href="http://www.leg.ufpr.br/%7Ewalmes" target="_blank">http://www.leg.ufpr.br/~walmes</a></span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">linux user number: 531218</span><br style="font-family:trebuchet ms,sans-serif">
<span style="font-family:trebuchet ms,sans-serif">==========================================================================</span><br></div><br>