使用 rvest 从闪存页面抓取数据

Scrape data from flash page using 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)

一切顺利。

不幸的是,如果我尝试抓取下面的统计数据(首先发球得分赢了,..) 使用选择器 .stat-breakdown span 我无法检索任何数据。

我知道通常不建议使用 rvest 抓取动态创建的页面,但是我不明白为什么有些数据会被抓取而有些数据不会。

我不使用 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,"[[{}]\"]","")

然后输出就是这样一个字符串