2017-04-08 5 views
0

submit_formからrvestまでの名前のないボタンに問題があります。このsiteは異なるストアをフィルタリングする検索フォームですが、要求を送信するボタンには名前がなく、submit_formは他のinputをボタンとして使用しようとしています。rvest:名前のないボタン(submit_form)

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) 
+1

すべて "仕事" はJavaScriptを使用して、ページが起きています。データを操作するには、Rseleniumまたはsplashrを使用する必要があります – hrbrmstr

答えて

0

ことがrvest 0.3.2バージョンのようbugです。 submit_requestを呼び出し具体submit_form:

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 $型は%関数で0%が期待通りに動作し長さの文字列である場合には、長いストーリーが短いと、結果として得られるブール値のベクトルは元のという形式の$ 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

関連する問題