RCurl: passando parâmetros e executando função javascript

Colegas, boa tarde! Estou precisando de ajuda com relação ao pacote *RCurl*. Tomando por exemplo o endereço < http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001>, ao acessá-lo via *browser *pode-se notar dois botões que executam trechos de código em *javascript *e geram links para o *download *de arquivos de dados: * Botão [Arquivo Access] remete ao comando "javascript:criarArq(2254001,2)" * Botão [Arquivo Texto] remete ao comando "javascript:criarArq(2254001,1)" Estou tentando usar o *RCurl *para passar diretamente os parâmetros para criação do *link *para o "Arquivo Texto". Isto feito, posteriormente pretendo usar o *link *gerado para *download* dos dados. Contudo, não estou tendo sucesso e ficarei muito grato por qualquer ajuda. Abaixo segue o código que tentei aplicar: ### <BEGIN> ### library(RCurl) myURL <- 'http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001' ### URL resultante da operação via browser: ### myURL2 <- ' http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001&CriaArq=true&TipoArq=1 ' myCurl <- getCurlHandle(cookiefile = "myCookies.txt", useragent="Mozilla/5.0", verbose = T, autoreferer = T, followlocation = T) myParams <- list(Codigo=2254001, CriaArq='true', TipoArq=1) ### Codigo: ID da estação ### CriaArq: true (executa função?), ### TipoArq: 1 (tipo texto) e 2 (Access) postForm(myURL, .params=myParams, curl=myCurl) getURL(myURL, curl=myCurl) ### Operação falha, retornando página original! ### Em caso de sucesso embutiria no código um link no formato: ### <a href="ARQ/A20131008-164720-14/CHUVAS.ZIP"> ### <END> ### -- Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Éder, Eu tive testando seu script, mas não consegui encontrar uma forma do RCurl resolver esse problema. Porque não tenta com o python? No python ficaria assim os comandos: from ghost import Ghost ghost = Ghost() ghost.open("http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001") ghost.evaluate("document.frmConsulta.cboTipoReg.value = '10'") ghost.evaluate("javascript:criarArq(2254001,2)") Att. Alisson Lucrécio da Costa On Tuesday, October 8, 2013 5:04 PM, Éder Comunello <comunello.eder@gmail.com> wrote: Colegas, boa tarde! Estou precisando de ajuda com relação ao pacote RCurl. Tomando por exemplo o endereço <http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001>, ao acessá-lo via browser pode-se notar dois botões que executam trechos de código em javascript e geram links para o download de arquivos de dados: * Botão [Arquivo Access] remete ao comando "javascript:criarArq(2254001,2)" * Botão [Arquivo Texto] remete ao comando "javascript:criarArq(2254001,1)" Estou tentando usar o RCurl para passar diretamente os parâmetros para criação do link para o "Arquivo Texto". Isto feito, posteriormente pretendo usar o link gerado para download dos dados. Contudo, não estou tendo sucesso e ficarei muito grato por qualquer ajuda. Abaixo segue o código que tentei aplicar: ### <BEGIN> ### library(RCurl) myURL <- 'http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001' ### URL resultante da operação via browser: ### myURL2 <- 'http://hidroweb.ana.gov.br/Estacao.asp?Codigo=2254001&CriaArq=true&TipoArq=1' myCurl <- getCurlHandle(cookiefile = "myCookies.txt", useragent="Mozilla/5.0", verbose = T, autoreferer = T, followlocation = T) myParams <- list(Codigo=2254001, CriaArq='true', TipoArq=1) ### Codigo: ID da estação ### CriaArq: true (executa função?), ### TipoArq: 1 (tipo texto) e 2 (Access) postForm(myURL, .params=myParams, curl=myCurl) getURL(myURL, curl=myCurl) ### Operação falha, retornando página original! ### Em caso de sucesso embutiria no código um link no formato: ### <a href="ARQ/A20131008-164720-14/CHUVAS.ZIP"> ### <END> ### -- Éder Comunello <comunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W] _______________________________________________ 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.

Caro Alisson, boa tarde! Embora eu ainda esteja engatinhando no Python, o código me pareceu relativamente simples (depois de pronto, parece fácil mesmo! :D). Isso reforça minha convicção de que deve haver uma forma fácil de fazer isso no R também... Vou insistir um pouco mais... e não tendo sucesso, tento adaptar o que tinha em mente para o Python! Fico muito grato por seu interesse e por sua colaboração. -- Éder Comunello <e <comunello.eder@gmail.com>comunel@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Oi Éder. Relendo algumas mensagens antigas encontrei essa discussão. Fiquei curioso: você conseguiu adaptar ao R ou usou o Python? abs Paulo Em 9 de outubro de 2013 16:45, Eder Comunello <ecomunel@gmail.com> escreveu:
Caro Alisson, boa tarde!
Embora eu ainda esteja engatinhando no Python, o código me pareceu relativamente simples (depois de pronto, parece fácil mesmo! :D). Isso reforça minha convicção de que deve haver uma forma fácil de fazer isso no R também...
Vou insistir um pouco mais... e não tendo sucesso, tento adaptar o que tinha em mente para o Python!
Fico muito grato por seu interesse e por sua colaboração.
-- Éder Comunello <e <comunello.eder@gmail.com>comunel@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ 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 (4)
-
Alisson Lucrecio
-
Eder Comunello
-
Paulo Nogueira Starzynski
-
Éder Comunello