R rvest包中的submit_form()函数未按功能提交查询表单

时间:2018-12-11 11:53:05

标签: r web-scraping rvest

这是基于此问题的,但是在执行步骤时遇到了问题。

Using submit_form() from rvest package returns a form which is not updated

以下是提取的代码:

# Load Packages
library(rvest)

# Specify URL
url <- "http://www.cocorahs.org/ViewData/ListDailyPrecipReports.aspx"
cocorahs <- html_session(url)

# Grab Initial Form
#  Form is filled in stages. Here, only do country and date
form.unfilled <- cocorahs %>% html_node("form") %>% html_form()
form.filled <- form.unfilled %>%
set_values("frmPrecipReportSearch:ucStationTextFieldsFilter:tbTextFieldValue" = "840",
         "frmPrecipReportSearch_ucDateRangeFilter_dcStartDate" = "6/15/2016",
         "frmPrecipReportSearch_ucDateRangeFilter_dcEndDate" = "6/15/2016")

# submit the form and save as a new session
session <- submit_form(cocorahs, form.filled) 

# look for a table in the nodes
table <- session %>% html_nodes("table")

# The table you want
table[[7]] %>% html_table()

但是,问题出在submit_form()函数应该提交了表单之后,该会话没有更新,仍然仅包含默认的最新记录。

此外,在浏览器的开发工具中选中的内容和网页上的“提交”按钮也具有这些属性。

<input type="submit" name="frmPrecipReportSearch:btnSearch" value="Search" id="frmPrecipReportSearch_btnSearch">

submit参数保留为默认值,submit_form()函数使用名称'frmPrecipReportSearch_ucDateRangeFilter_dcEndDate',该名称似乎来自网页上的无关项,但是当我指定{{1 }}参数作为属性中的submitname,发生错误。

那么如何在R中模拟浏览行为,例如提交表单?

0 个答案:

没有答案