
Éder, vacilei geral no uso do argumento! rs Imaginei mesmo que pudessem ter formatos diferentes misturados. Foi últil saber que o enconding na postForm não resolveria nessa situação. Obrigado pela dica e por melhorar a saída. abs Paulo Em 9 de junho de 2014 15:11, Éder Comunello <comunello.eder@gmail.com> escreveu:
Paulo, boa tarde!
No código que você postou .encoding não está como um argumento de postForm, mas sim de .params. De qualquer modo, não é útil para o que você deseja, porque é atributo do que se está postando, no caso o código do objeto ("JG310431462BR").
O encoding que você deseja é do que você está retornando do postForm, sendo assim deve indicar o encoding em htmlParse() ou htmlTreeParse().
Apesar da indicação da página estar em "ISO-8859-1", pelo menos o trecho que retorna o rastreamento está em "UTF-8".
Separei o conteúdo da div "ctrlcontent" e li a tabela que havia dentro dela. Preciso estudar melhor o readHTMLTable, mas por ora usei o artifício do gsub() pra melhorar a saída.
### <code r> sapply(c("RCurl", "httr", "XML"), require, character=T) add <- "http://www2.correios.com.br/sistemas/rastreamento/resultado.cfm " params <- c(objetos="JG310431462BR", btnPesq="Buscar") src <- postForm(add, .params=params) tree <- htmlParse(src, encoding = "UTF8")
div <- xpathSApply(tree, '//div[@class="ctrlcontent"]') info <- readHTMLTable(div[[1]], stringsAsFactors = FALSE); info
sapply(info, function(x) gsub(' \\r', '- ', x))
# V1 V2
# [1,] "09/06/2014 - 11:39 SAO PAULO / SP" "Objeto saiu para entrega ao destinatário" # [2,] "04/06/2014 - 17:06 FOZ DO IGUACU / PR" "Objeto postado"
### </code>
Espero que ajude...
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
Em 7 de junho de 2014 13:01, Paulo Nogueira Starzynski <paulons@gmail.com> escreveu:
Senhores, acho que a questão é simples mas eu me confundo com encodings no R. No exemplo abaixo estou utilizando a função postForm para informar um número de rastreador no site dos correios. Em seguida, utilizo o pacote XML para limpar o código fonte e ficar com o que me interessa, que são os dados da carta em trânsito, desde Foz do Iguacu até minha casa.
Está funcionando, mas eu gostaria que os acentos estivessem corretos. O resultado que obtenho no R é esse:
[1] "\r04/06/2014 \r17:06 FOZ DO IGUACUÂ /Â PR\r\r\r\r\rObjeto postado \r \r"
Marquei o enconding como "ISO-8859-1" porque é o que aparece no começo do código fonte da página: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Como posso melhorar? Segue o código:
require(RCurl) require(XML)
add<-"http://www2.correios.com.br/sistemas/rastreamento/resultado.cfm" src<-postForm(add, .params = c(objetos="JG310431462BR", btnPesq="Buscar", .enconding="ISO-8859-1"))
tree<-htmlTreeParse(src, useInternalNodes=T) xpathSApply(tree, '//table', xmlValue)
Grato, Paulo Nogueira Starzynski
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.