[R-br] Dúvida: Utilizando o RCurl para preencher formulários

Rogério Barbosa antrologos em gmail.com
Terça Agosto 20 00:07:22 BRT 2013


Olá, Henrique,

Obrigado pela resposta. O erro anterior pára de acontecer quando se usa
getForm ao invés de postForm. Valeu pela dica!

Mas o resultado obtido é a página original e não a seguinte, para o qual a
submissão do formulário direcionaria o usuário. Ou seja: o formulário não
foi submetido...

abraço,
Rogério





On Mon, Aug 19, 2013 at 11:43 PM, Henrique Dallazuanna <wwwhsd em gmail.com>wrote:

> Tente algo como:
>
> library(RCurl)
> getForm("
> https://docs.google.com/forms/d/1daaGo7XZaaGGPvTOconG8QZItqaLeIZmSpPPcgxTJvg/viewform
> ",
>    .params = list(entry.1945263135 = "Option 2", entry.1427156778 =
> "Teste RCurl", entry.296661609 = "Option 3", entry.1456907668 = "Option
> 1"),
>    .opts = list(ssl.verifypeer = FALSE))
>
>
> On Mon, Aug 19, 2013 at 8:15 PM, Rogério Barbosa <antrologos em gmail.com>wrote:
>
>> Olá,
>>
>> Estou tentando aprender a mexer com o RCurl para postar formulários web.
>> Mas não estou tendo muito sucesso com o uso da função postForm.
>>
>> Abaixo há dois exemplos de tentativas minhas... ambas não deram certo.
>>
>> Alguma dica?
>>
>> abraços,
>> Rogério J. Barbosa
>>
>>
>>
>>
>> ######## Exemplo 1 - Preenchimento de um Google Form
>> require(XML)
>> require(RCurl)
>>
>> # Página com o formulário
>> url = "
>> https://docs.google.com/forms/d/1daaGo7XZaaGGPvTOconG8QZItqaLeIZmSpPPcgxTJvg/viewform
>> "
>>
>> # Define o a ser usado certificado
>> options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem",
>> package = "RCurl")))
>>
>> #Baixa a url
>> orig = getURLContent(url=url)
>>
>> #Parsing...
>> doc = htmlParse(orig[[1]], asText=TRUE)
>>
>> # Obtem os formulários
>> forms = getNodeSet(doc, "//form")
>> forms[[1]] #exibe o primeiro
>>
>> # Mostra os nodes do tipo "input" que devem ser preenchidos no formulário
>> getNodeSet(forms[[1]], ".//input")
>>
>> # Mostra os nodes do tipo "select" que devem ser preenchidos no formulário
>> getNodeSet(forms[[1]], ".//select")
>>
>>
>> # Tentativa de postar o formulário ---------- "Error: Method Not Allowed"
>> htmlParse(postForm(url,
>>                    "entry.1945263135"="Option 1",
>>                    "entry.1427156778"="",
>>                    "entry.296661609"="Option 1",
>>                    "entry.1456907668"="Option 1",
>>                     style = 'POST'))
>>
>>
>> ###################################
>>
>> ######## Exemplo 2 - Tentativa de prencher um fomulario em que o botão de
>> submissão é uma
>> ######## funçao javascript
>>
>> url = "
>> http://www.javascript-coder.com/files/form-submit/javascript-form-submit-example.html
>> "
>>
>>
>> # Preenchimento do formulario  ---------- não acontece nada, não submete
>> htmlParse(postForm(url,
>>                    "query"="bla",
>>                    .opts=curlOptions(
>>                      referer=url,verbose = TRUE, followLocation = TRUE)
>> ) )
>>
>>
>> _______________________________________________
>> 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.
>>
>
>
>
> --
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>
> _______________________________________________
> 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/20130820/91fcf6cd/attachment.html>


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