首页 > 解决方案 > 使用 R 和 Rvest 自动完成并发送表单

问题描述

在来这里之前我已经看了很多。

我想自动填写表格并使用 Rvest 库将其与 R 一起发送。

这是表格:https ://sedeaplicaciones.minetur.gob.es/shpCarburantes/

我知道问题出在名称上,但我找不到正确的名称。

希望您能够帮助我。

先感谢您!

library(rvest)
url <- "https://sedeaplicaciones.minetur.gob.es/shpCarburantes/"
form <- url %>% read_html() %>% html_form()
set_values(form, 
      "ctl00$cph_Contenido$ddlTipoConsulta" = "0",
      "ctl00$cph_Contenido$ddlTipoTemp" = "0",
      "ctl00$cph_Contenido$txtFechaInicial" = "01/12/2018",
      "ctl00$cph_Contenido$txtFechaFinal" = "30/12/2018"
      )

Error: Unknown field names: ctl00$cph_Contenido$ddlTipoConsulta, 
ctl00$cph_Contenido$ddlTipoTemp, ctl00$cph_Contenido$txtFechaInicial, 
ctl00$cph_Contenido$txtFechaFinal

标签: rformsrvest

解决方案


的结果html_form()是表单列表,而不是单个表单。该函数set_values()需要一个表单,因此您需要在调用它之前提取表单:

form <- url %>% read_html() %>% html_form()
form <- form[[1]]

set_values(form, 
  "ctl00$cph_Contenido$ddlTipoConsulta" = "0",
  "ctl00$cph_Contenido$ddlTipoTemp" = "0",
  "ctl00$cph_Contenido$txtFechaInicial" = "01/12/2018",
  "ctl00$cph_Contenido$txtFechaFinal" = "30/12/2018"
  )

推荐阅读