使用rvest从闪存页面中删除数据

时间:2016-06-05 16:06:03

标签: r rvest

我正在尝试从此页面抓取数据:

http://www.atpworldtour.com/en/tournaments/brisbane-international-presented-by-suncorp/339/2016/match-stats/r975/f324/match-stats

如果我尝试使用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通常不建议动态创建页面,但是我不明白为什么有些数据会被删除而有些数据不会被删除。

1 个答案:

答案 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,"[[{}]\"]","")

输出则是这样的字符串

enter image description here