
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.