我正在尝试从此页面抓取数据:
如果我尝试使用css选择器和通常的rvest语法来刮取播放器的名称:
names <- read_html("http://www.atpworldtour.com/en/tournaments/brisbane-international-presented-by-suncorp/339/2016/match-stats/r975/f324/match-stats?") %>%
html_nodes(".scoring-player-name") %>% sapply(html_text)
一切顺利。
不幸的是,如果我试图抓下面的统计数据(首先服务pts赢了,..)
使用选择器.stat-breakdown span
我无法检索任何数据。
我知道rvest通常不建议动态创建页面,但是我不明白为什么有些数据会被删除而有些数据不会被删除。
答案 0 :(得分:1)
我不使用Rvest。如果你按照下面的代码,你应该得到图片中的格式基本上是一个字符串,你可以根据分隔符转换为数据帧:,。
此标记还包含的信息比在网页的UI中显示的信息多。 我也可以尝试RSelenium,但需要得到我的其他PC。如果RSelenium为我工作,我会告诉你的。
library(XML)
library(RCurl)
library(stringr)
url<-"http://www.atpworldtour.com/en/tournaments/brisbane-international-presented-by-suncorp/339/2016/match-stats/r975/f324/match-stats?"
url2<-getURL(url)
parsed<-htmlParse(url2)
# get messi data from tag
step1<-xpathSApply(parsed,"//script[@id='matchStatsData']",xmlValue)
# removing some unwanted characters
step2<-str_replace_all(step1,"\r\n","")
step3<-str_replace_all(step2,"\t","")
step4<-str_replace_all(step3,"[[{}]\"]","")
输出则是这样的字符串