r - 使用 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
解决方案
的结果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"
)
推荐阅读
- mysql - 用正确的正ID替换负ID?
- java - java.lang.AssertionError: Docker 环境有超过 2GB 可用空间
- php - SQL 语句 where 如果下一个值与当前值相同则跳过该值
- bash - 为什么使用两个变量时 sed 失败?
- django-rest-framework - 如何对二进制资源进行内容协商
- java - 安装了 Elasticsearch 5.5 服务启动失败
- react-native - 我们如何将 React Native App 连接到 octobercms 后端?
- c++ - 如果在函数之外定义,则在 ofstream::open() 上出现段错误
- node.js - 使用 deletemany 清空 MongoDB(通过 Azure Cosmos Db)共享集合
- controller - FluidTYPO3 流体页面 - 未找到自定义页面控制器