encoding de páginas web readLines XML

Saudações, Estou fazendo um estudo com vídeos do youtube. A partir dos links eu retiro informações deles, como o título. No entanto, não estou conseguindo acertar o encoding, seja para ler corretamente a página ou para tranformar as strings após a leitura. Com o CMR abaixo eu leio o código de um vídeo do youtube e pego seu título, o problema é que os acentos não são corretamente representados, e eu preciso que sejam. Tentei atribuir um encoding na readLines() mas nenhum dos usados (latin1 e utf-8) funcionaram. Tentei usar a iconv() mas sem sucesso. Uso ubuntu 12.04. Sessão R está no CMR. library(XML) # lê a página do vídeo com esse endereço lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI") # lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI", encoding=?) # organiza h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE) summary(h) # pega o título do vídeo n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n Encoding(n) # retira os caracteres estranhos substituindo por vazio iconv(nap, from="UTF-8", to="ASCII", sub="") # iconv(n, from=?, to=?) *# Como sai # "Matemática - EstatÃstica: Conceito e frequências - YouTube" # Como eu gostaria # "Matemática - Estatística: Conceito e frequências - YouTube"* ## > sessionInfo() ## R version 3.0.1 (2013-05-16) ## Platform: i686-pc-linux-gnu (32-bit) ## locale: ## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C ## [3] LC_TIME=pt_BR.UTF-8 LC_COLLATE=pt_BR.UTF-8 ## [5] LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=pt_BR.UTF-8 ## [7] LC_PAPER=C LC_NAME=C ## [9] LC_ADDRESS=C LC_TELEPHONE=C ## [11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## other attached packages: ## [1] XML_3.96-1.1 ## loaded via a namespace (and not attached): ## [1] compiler_3.0.1 tools_3.0.1 ## > Alguém saberia solucionar esse problema? Desde já grato. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Caro Walmes, não consegui reproduzir intralmente seu código, mas o comando abaixo funcionou pra mim, usando Windows. (Eu copiei o texto do email, não sei se vai funcionar com o texto gerado pelo seu código.
iconv("Matemática - EstatÃstica: Conceito e frequências - YouTube", from="utf-8") [1] "Matemática - Estatística: Conceito e frequências - YouTube"
Abs. Em 7 de junho de 2013 09:49, walmes . <walmeszeviani@gmail.com> escreveu:
Saudações,
Estou fazendo um estudo com vídeos do youtube. A partir dos links eu retiro informações deles, como o título. No entanto, não estou conseguindo acertar o encoding, seja para ler corretamente a página ou para tranformar as strings após a leitura. Com o CMR abaixo eu leio o código de um vídeo do youtube e pego seu título, o problema é que os acentos não são corretamente representados, e eu preciso que sejam. Tentei atribuir um encoding na readLines() mas nenhum dos usados (latin1 e utf-8) funcionaram. Tentei usar a iconv() mas sem sucesso. Uso ubuntu 12.04. Sessão R está no CMR.
library(XML)
# lê a página do vídeo com esse endereço lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI") # lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI", encoding=?)
# organiza h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE) summary(h)
# pega o título do vídeo n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n
Encoding(n)
# retira os caracteres estranhos substituindo por vazio iconv(nap, from="UTF-8", to="ASCII", sub="") # iconv(n, from=?, to=?)
*# Como sai # "Matemática - EstatÃstica: Conceito e frequências - YouTube"
# Como eu gostaria # "Matemática - Estatística: Conceito e frequências - YouTube"*
## > sessionInfo() ## R version 3.0.1 (2013-05-16) ## Platform: i686-pc-linux-gnu (32-bit)
## locale: ## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C ## [3] LC_TIME=pt_BR.UTF-8 LC_COLLATE=pt_BR.UTF-8 ## [5] LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=pt_BR.UTF-8 ## [7] LC_PAPER=C LC_NAME=C ## [9] LC_ADDRESS=C LC_TELEPHONE=C ## [11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C
## attached base packages: ## [1] stats graphics grDevices utils datasets methods base
## other attached packages: ## [1] XML_3.96-1.1
## loaded via a namespace (and not attached): ## [1] compiler_3.0.1 tools_3.0.1 ## >
Alguém saberia solucionar esse problema? Desde já grato.
Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ 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.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006

alem disto Walves serias bom vr qual encoding sua sessao estao usando (provavelmente utf-8 nativo no linux) vc tentou enc2native() ? On Fri, 7 Jun 2013, Marcos Silva wrote:
Caro Walmes, não consegui reproduzir intralmente seu código, mas o comando abaixo funcionou pra mim, usando Windows. (Eu copiei o texto do email, não sei se vai funcionar com o texto gerado pelo seu código.
iconv("Matemática - EstatÃstica: Conceito e frequências - YouTube", from="utf-8") [1] "Matemática - Estatística: Conceito e frequências - YouTube"
Abs. Em 7 de junho de 2013 09:49, walmes . <walmeszeviani@gmail.com> escreveu: Saudações,
Estou fazendo um estudo com vídeos do youtube. A partir dos links eu retiro informações deles, como o título. No entanto, não estou conseguindo acertar o encoding, seja para ler corretamente a página ou para tranformar as strings após a leitura. Com o CMR abaixo eu leio o código de um vídeo do youtube e pego seu título, o problema é que os acentos não são corretamente representados, e eu preciso que sejam. Tentei atribuir um encoding na readLines() mas nenhum dos usados (latin1 e utf-8) funcionaram. Tentei usar a iconv() mas sem sucesso. Uso ubuntu 12.04. Sessão R está no CMR.
library(XML)
# lê a página do vídeo com esse endereço lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI") # lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI", encoding=?)
# organiza h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE) summary(h)
# pega o título do vídeo n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n
Encoding(n)
# retira os caracteres estranhos substituindo por vazio iconv(nap, from="UTF-8", to="ASCII", sub="") # iconv(n, from=?, to=?)
# Como sai # "Matemática - EstatÃstica: Conceito e frequências - YouTube"
# Como eu gostaria # "Matemática - Estatística: Conceito e frequências - YouTube"
## > sessionInfo() ## R version 3.0.1 (2013-05-16) ## Platform: i686-pc-linux-gnu (32-bit)
## locale: ## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C ## [3] LC_TIME=pt_BR.UTF-8 LC_COLLATE=pt_BR.UTF-8 ## [5] LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=pt_BR.UTF-8 ## [7] LC_PAPER=C LC_NAME=C ## [9] LC_ADDRESS=C LC_TELEPHONE=C ## [11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C
## attached base packages: ## [1] stats graphics grDevices utils datasets methods base
## other attached packages: ## [1] XML_3.96-1.1
## loaded via a namespace (and not attached): ## [1] compiler_3.0.1 tools_3.0.1 ## >
Alguém saberia solucionar esse problema? Desde já grato.
Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ 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.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006

Walmes, Colocando a opção encoding = "utf-8" na função htmlTreeParse funciona para mim.
library(XML) # lê a página do vídeo com esse endereço lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI") # organiza h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE, encoding = "utf-8")
# pega o título do vídeo n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n [1] "Matemática - EstatÃstica: Conceito e frequências - YouTube" iconv(n, from="utf-8") [1] "Matemática - Estatística: Conceito e frequências - YouTube"
Att., Rubem ________________________________ De: walmes . <walmeszeviani@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Sexta-feira, 7 de Junho de 2013 9:49 Assunto: [R-br] encoding de páginas web readLines XML Saudações, Estou fazendo um estudo com vídeos do youtube. A partir dos links eu retiro informações deles, como o título. No entanto, não estou conseguindo acertar o encoding, seja para ler corretamente a página ou para tranformar as strings após a leitura. Com o CMR abaixo eu leio o código de um vídeo do youtube e pego seu título, o problema é que os acentos não são corretamente representados, e eu preciso que sejam. Tentei atribuir um encoding na readLines() mas nenhum dos usados (latin1 e utf-8) funcionaram. Tentei usar a iconv() mas sem sucesso. Uso ubuntu 12.04. Sessão R está no CMR. library(XML) # lê a página do vídeo com esse endereço lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI") # lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI", encoding=?) # organiza h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE) summary(h) # pega o título do vídeo n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n Encoding(n) # retira os caracteres estranhos substituindo por vazio iconv(nap, from="UTF-8", to="ASCII", sub="") # iconv(n, from=?, to=?) # Como sai # "Matemática - EstatÃstica: Conceito e frequências - YouTube" # Como eu gostaria # "Matemática - Estatística: Conceito e frequências - YouTube" ## > sessionInfo() ## R version 3.0.1 (2013-05-16) ## Platform: i686-pc-linux-gnu (32-bit) ## locale: ## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C ## [3] LC_TIME=pt_BR.UTF-8 LC_COLLATE=pt_BR.UTF-8 ## [5] LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=pt_BR.UTF-8 ## [7] LC_PAPER=C LC_NAME=C ## [9] LC_ADDRESS=C LC_TELEPHONE=C ## [11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## other attached packages: ## [1] XML_3.96-1.1 ## loaded via a namespace (and not attached): ## [1] compiler_3.0.1 tools_3.0.1 ## > Alguém saberia solucionar esse problema? Desde já grato. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ========================================================================== _______________________________________________ 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.

Senhores, suas sugestões resolveram o problema, no caso, usando encodingo para htmlTreeParse. Vejam.
library(XML)
lines <- readLines("http://www.youtube.com/watch?v=P3m6rJR2yDI")
h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE) n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n [1] "Matemática - EstatÃstica: Conceito e frequências - YouTube" iconv(n, from="UTF-8") [1] "Matemática - EstatÃstica: Conceito e frequências - YouTube" enc2native(n) [1] "Matemática - EstatÃstica: Conceito e frequências - YouTube"
h <- htmlTreeParse(lines, asText=TRUE, useInternalNodes=TRUE,*encoding="utf-8" *) n <- unlist(getNodeSet(doc=h, path="//title", fun=xmlValue)) n [1] "Matemática - Estatística: Conceito e frequências - YouTube"
Grato à todos. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
participantes (4)
-
Marcos Silva
-
Paulo Justiniano
-
Rubem Kaipper Ceratti
-
walmes .