2017-04-08 1 views
0

submit_formrvest의 이름이없는 버튼에 문제가 있습니다. 이 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

. Rselenium 또는 splashr을 사용하여 데이터 작업해야합니다. – hrbrmstr

답변

0

rvest 0.3.2 버전부터 bug입니다. submit_request 호출 구체적 submit_form는 :

경우 X 타입을 $
submit_request <- function(form, submit = NULL) { 
is_submit <- function(x) tolower(x$type) %in% c("submit", "image","button") 
submits <- Filter(is_submit, form$fields) 
... 
에서

는 길이의 문자열 0 예상대로 기능이 작동 않는 %의 %; 길게 짧으면 결과 불린 벡터는 원래 형식 $ field 벡터보다 작은 크기입니다.

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에서 필요한 기능을 복사하여 새 안정 버전이 출시 될 때까지 위와 같이 그것을 해결하기 위해 제안 :

는이 같은 submit_request 내 자신을 썼다.

안부

CA 모든 "작업"자바 스크립트를 사용하여 페이지 일어나고