
Ola a todos. estou usando a função readLines para baixar em looping uma série de códigos fonte de páginas web. Se por algum motivo a função não consegue acessar uma determinada página (mesmo o endereço estando certo) todo o processo é paralisado. Como eu posso fazer o processo continuar até o fim, mesmo encontrando alguns erros de acesso no meio do caminho? O programa é grande, mas para exemplificar criei o código abaixo que acessa 3 páginas da web e imprime a décima linha do código fonte. urlBase<-"http://www.prefeitura.sp.gov.br/cidade/secretarias/cultura/" url<-c(paste(urlBase,"bma/",sep=''), paste(urlBase,"bibliotecas/monteiro_lobatoooooo/",sep=''), paste(urlBase,"bibliotecas/bibliotecas_bairro/bibliotecas_a_l/afonso_schmidt_/",sep='')) for(i in 1:3) print(readLines(url[i], encoding="UTF-8")[10]) Reparem que o segundo endereço está errado e por isso a função retorna erro e não acessa a terceira url, parando o processo. Como evitar isso? Abraços Paulo Nogueira Starzynski

use a função tryCatch: urlBase<-"http://www.prefeitura.sp.gov.br/cidade/secretarias/cultura/" url<-c(paste(urlBase,"bma/",sep=''), paste(urlBase,"bibliotecas/monteiro_lobatoooooo/",sep=''), paste(urlBase,"bibliotecas/bibliotecas_bairro/bibliotecas_a_l/afonso_schmidt_/",sep='')) for(i in 1:3) print(tryCatch(readLines(url[i], encoding="UTF-8"), error = invisible, warning = invisible)[10]) 2012/1/22 Paulo Nogueira <paulons@gmail.com>
Ola a todos.
estou usando a função readLines para baixar em looping uma série de códigos fonte de páginas web. Se por algum motivo a função não consegue acessar uma determinada página (mesmo o endereço estando certo) todo o processo é paralisado. Como eu posso fazer o processo continuar até o fim, mesmo encontrando alguns erros de acesso no meio do caminho?
O programa é grande, mas para exemplificar criei o código abaixo que acessa 3 páginas da web e imprime a décima linha do código fonte.
urlBase<-"http://www.prefeitura.sp.gov.br/cidade/secretarias/cultura/" url<-c(paste(urlBase,"bma/",sep=''), paste(urlBase,"bibliotecas/monteiro_lobatoooooo/",sep=''),
paste(urlBase,"bibliotecas/bibliotecas_bairro/bibliotecas_a_l/afonso_schmidt_/",sep=''))
for(i in 1:3) print(readLines(url[i], encoding="UTF-8")[10])
Reparem que o segundo endereço está errado e por isso a função retorna erro e não acessa a terceira url, parando o processo. Como evitar isso?
Abraços 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.
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O

Obrigado Henrique, era o que eu precisava. Havia chegado até afunção try, mas agora você matou a questão. abs Paulo Em 22 de janeiro de 2012 15:13, Henrique Dallazuanna <wwwhsd@gmail.com>escreveu:
use a função tryCatch:
urlBase<-"http://www.prefeitura.sp.gov.br/cidade/secretarias/cultura/" url<-c(paste(urlBase,"bma/",sep=''), paste(urlBase,"bibliotecas/monteiro_lobatoooooo/",sep=''),
paste(urlBase,"bibliotecas/bibliotecas_bairro/bibliotecas_a_l/afonso_schmidt_/",sep=''))
for(i in 1:3) print(tryCatch(readLines(url[i], encoding="UTF-8"), error = invisible, warning = invisible)[10])
2012/1/22 Paulo Nogueira <paulons@gmail.com>
Ola a todos.
estou usando a função readLines para baixar em looping uma série de códigos fonte de páginas web. Se por algum motivo a função não consegue acessar uma determinada página (mesmo o endereço estando certo) todo o processo é paralisado. Como eu posso fazer o processo continuar até o fim, mesmo encontrando alguns erros de acesso no meio do caminho?
O programa é grande, mas para exemplificar criei o código abaixo que acessa 3 páginas da web e imprime a décima linha do código fonte.
urlBase<-"http://www.prefeitura.sp.gov.br/cidade/secretarias/cultura/" url<-c(paste(urlBase,"bma/",sep=''), paste(urlBase,"bibliotecas/monteiro_lobatoooooo/",sep=''),
paste(urlBase,"bibliotecas/bibliotecas_bairro/bibliotecas_a_l/afonso_schmidt_/",sep=''))
for(i in 1:3) print(readLines(url[i], encoding="UTF-8")[10])
Reparem que o segundo endereço está errado e por isso a função retorna erro e não acessa a terceira url, parando o processo. Como evitar isso?
Abraços 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.
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O
_______________________________________________ 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.
participantes (2)
-
Henrique Dallazuanna
-
Paulo Nogueira