[R-br] Encoding e função postForm

Paulo Nogueira Starzynski paulons em gmail.com
Segunda Junho 9 16:05:14 BRT 2014


É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 em 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 em gmail.com>omunello.eder em gmail.com>
> Dourados, MS - [22 16.5'S, 54 49'W]
>
>
> Em 7 de junho de 2014 13:01, Paulo Nogueira Starzynski <paulons em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140609/80bc65c4/attachment.html>


Mais detalhes sobre a lista de discussão R-br