Éder, vacilei geral no uso do arguemnto! rs


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 <comunello.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)

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.