我的submit_form
rvest
没有名称的按钮有问题。在此site上搜索表单是为了过滤不同的商店,但提交请求的按钮没有任何名称,而submit_form
正在尝试使用其他input
作为按钮。
Submitting with 'distance'
Error in xml2::url_absolute(form$url, session$url) :
not compatible with STRSXP
我试图重命名按钮,但没有任何运气。你如何处理这样一个无名按钮?在文档中,我找不到任何关于使用xpath或任何其他方式的内容。谢谢你的帮助
library(rvest)
library(magrittr)
rm(list=ls())
url <- html_session("http://www.lidl.cz/cs/2868.htm")
search <- url %>% html_node(xpath='//*[@id="searchform"]') %>%
html_form() %>% set_values("startingpoint-city"="Kolín", distance="400")
#hledani$fields[[5]]$name<- "button"
url <- submit_form(url,search)
答案 0 :(得分:0)
这是rvest 0.3.2版本的bug。具体来说, submit_form 调用 submit_request :
submit_request <- function(form, submit = NULL) {
is_submit <- function(x) tolower(x$type) %in% c("submit", "image","button")
submits <- Filter(is_submit, form$fields)
...
如果 x $ type 是一个长度为0 的字符串,%in%函数的行为与预期的一样;简而言之,生成的布尔向量的大小小于原始的 form $ field 向量。
我写了这样的 submit_request :
submit_request <- function(form, submit = NULL) {
is_submit <- function(x) tolower(x$type) %in% c("submit", "image", "button") && length(x$type)>0
submits <- Filter(is_submit, form$fields)
...
我建议您从source code复制必要的功能并按上图所示进行修复,直到发布新的稳定版本为止。
最好的问候
CA