2017-09-14 3 views
0

page에서 다른 하키 토너먼트/리그의 이름을 찾고 싶습니다. 문제는 필자가 8000 가지 요소에 가깝게 끝나기 때문이다.Rselenium이 예상보다 많은 요소를 반환합니다.

library(RSelenium) 
rs <- rsDriver() 
remote <- rs$client 

remote$navigate("http://www.oddsportal.com/results/#hockey") 
elems <- remote$findElements("css selector", "#archive-tables > table a") 
# tournaments <- unlist(sapply(elems, function(x) x$getElementText())) This takes very long time due to the number of elements 

답변

1

실제로 검색하려는 유형의 요소가 많이 있습니다.

한 가지 방법은 SelectorGadgets (Chrome 확장 프로그램)를 설치하고 스크래핑하려는 요소를 클릭하는 것입니다 (또는 더 나은 방법으로 #archive 표 a).

축구, 테니스, 농구 등과 같은 다른 범주의 많은 하이퍼 링크가 있는데, 이는 RSelenium이 주문에 따라 구별 할 수있는 방법이 없기 때문에 노란색으로 번쩍입니다.

다음 해결책은 순진하지만 빠른 방법입니다. 내가 배관을 사용하여 사랑하기 때문에 나는 rvest 좋아하고 당신이 좋겠 있지만 그것은 그때 결과 (320 개) 요소는 당신이 원하는 무엇에 가까운 생각

library(rvest) 
odds_portal <- read_html("http://www.oddsportal.com/results/#hockey") 
temp <- odds_portal %>% html_nodes("#archive-tables a") %>% html_text() 
a <- which(temp=="Hockey") 
b <- which(temp=="Handball") 
temp[a:(b-1)] 

--- 훨씬 더 직관적 인 나에게의 패키지 rvest를 설치하고, 그들 중 일부를 걸러 내야한다. 아시아. 이것이 잘 풀리지 않는지 알려주세요.

관련 문제