The getForm and postForm functions from the RCurl package can be used to submit forms from R. The GET and POST methods for form submission are similar but meaningfully different; check the <form> tag in the HTML of a form to determine which function to use. In the right circumstances, these functions can be useful for automating retrieval of data sets that might otherwise require a form submission for each data set.
getForm(url, …)
- url – A character string of a URL.
- … – The GET names and their values.
postForm(url, …)
- url – A character string of a URL.
- … – The POST names and their values.
Example. Below I sign up to be notified when OpenIntro becomes a non-profit so I can donate. After examining the HTML in the online form, I saw that there were three values (one optional) that needed to be submitted: name, email, and phone. These make up the arguments following the URL. Visit OpenIntro’s homepage or download a free PDF of the intro stat textbook, OpenIntro Statistics (paperback copies are also sold on Amazon for $9.02).
> library(RCurl) > > #=====> Sign Up To Be An OpenIntro Donor <=====# > url <- "http://www.openintro.org/cont/donorProcess.php" > result <- postForm(url, name="David Diez", + email="david@openintro.org", + phone="857-288-8547") > > # The result is an empty string since the page redirects > # Otherwise postForm and getForm return the resulting HTML > result [1] "" attr(,"Content-Type") "text/html"
Those of you who closely follow the blog might notice that I’ve upgraded to the latest version of R since the post on getURLContent, so I no longer get a warning when I load in the RCurl package.