Use html_form()
to extract a form, set values with html_form_set()
,
and submit it with html_form_submit()
.
html_form(x, base_url = NULL)
html_form_set(form, ...)
html_form_submit(form, submit = NULL)
A document (from read_html()
), node set (from html_elements()
),
node (from html_element()
), or session (from session()
).
Base url of underlying HTML document. The default, NULL
,
uses the url of the HTML document underlying x
.
A form
<dynamic-dots
> Name-value pairs giving
fields to modify.
Provide a character vector to set multiple checkboxes in a set or select multiple values from a multi-select.
Which button should be used to submit the form?
NULL
, the default, uses the first button.
A string selects a button by its name.
A number selects a button using its relative position.
html_form()
returns as S3 object with class rvest_form
when applied
to a single element. It returns a list of rvest_form
objects when
applied to multiple elements or a document.
html_form_set()
returns an rvest_form
object.
html_form_submit()
submits the form, returning an httr response which
can be parsed with read_html()
.
HTML 4.01 form specification: https://www.w3.org/TR/html401/interact/forms.html
html <- read_html("http://www.google.com")
search <- html_form(html)[[1]]
search <- search %>% html_form_set(q = "My little pony", hl = "fr")
#> Warning: Setting value of hidden field "hl".
# Or if you have a list of values, use !!!
vals <- list(q = "web scraping", hl = "en")
search <- search %>% html_form_set(!!!vals)
#> Warning: Setting value of hidden field "hl".
# To submit and get result:
if (FALSE) { # \dontrun{
resp <- html_form_submit(search)
read_html(resp)
} # }