<div dir="ltr"><div class="gmail_extra">Olá,</div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Abaixo há dois exemplos de tentativas minhas... ambas não deram certo. </div><div class="gmail_extra"><br></div><div class="gmail_extra">Alguma dica?</div><div class="gmail_extra">
<br></div><div class="gmail_extra">abraços,</div><div class="gmail_extra">Rogério J. Barbosa</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra"><div class="gmail_extra">######## Exemplo 1 - Preenchimento de um Google Form</div><div class="gmail_extra">require(XML)</div><div class="gmail_extra">require(RCurl)</div><div class="gmail_extra">
<br></div><div class="gmail_extra"># Página com o formulário</div><div class="gmail_extra">url = "<a href="https://docs.google.com/forms/d/1daaGo7XZaaGGPvTOconG8QZItqaLeIZmSpPPcgxTJvg/viewform">https://docs.google.com/forms/d/1daaGo7XZaaGGPvTOconG8QZItqaLeIZmSpPPcgxTJvg/viewform</a>"</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"># Define o a ser usado certificado</div><div class="gmail_extra">options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">#Baixa a url</div><div class="gmail_extra">orig = getURLContent(url=url) </div><div class="gmail_extra"><br></div><div class="gmail_extra">#Parsing...</div><div class="gmail_extra">
doc = htmlParse(orig[[1]], asText=TRUE) </div><div class="gmail_extra"><br></div><div class="gmail_extra"># Obtem os formulários</div><div class="gmail_extra">forms = getNodeSet(doc, "//form") </div><div class="gmail_extra">
forms[[1]] #exibe o primeiro</div><div class="gmail_extra"><br></div><div class="gmail_extra"># Mostra os nodes do tipo "input" que devem ser preenchidos no formulário</div><div class="gmail_extra">getNodeSet(forms[[1]], ".//input") </div>
<div class="gmail_extra"><br></div><div class="gmail_extra"># Mostra os nodes do tipo "select" que devem ser preenchidos no formulário</div><div class="gmail_extra">getNodeSet(forms[[1]], ".//select") </div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"># Tentativa de postar o formulário ---------- "Error: Method Not Allowed"</div><div class="gmail_extra">htmlParse(postForm(url,</div>
<div class="gmail_extra"> "entry.1945263135"="Option 1",</div><div class="gmail_extra"> "entry.1427156778"="",</div><div class="gmail_extra"> "entry.296661609"="Option 1",</div>
<div class="gmail_extra"> "entry.1456907668"="Option 1",</div><div class="gmail_extra"> style = 'POST'))</div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra">###################################</div><div class="gmail_extra"><br></div><div class="gmail_extra">######## Exemplo 2 - Tentativa de prencher um fomulario em que o botão de submissão é uma</div>
<div class="gmail_extra">######## funçao javascript</div><div class="gmail_extra"><br></div><div class="gmail_extra">url = "<a href="http://www.javascript-coder.com/files/form-submit/javascript-form-submit-example.html">http://www.javascript-coder.com/files/form-submit/javascript-form-submit-example.html</a>"</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"># Preenchimento do formulario ---------- não acontece nada, não submete </div><div class="gmail_extra">htmlParse(postForm(url,</div>
<div class="gmail_extra"> "query"="bla",</div><div class="gmail_extra"> .opts=curlOptions(</div><div class="gmail_extra"> referer=url,verbose = TRUE, followLocation = TRUE)</div>
<div class="gmail_extra">) )</div><div><br></div></div></div>