No código apliquei só para o Fluminense, mas já gerei os índices pra montar o loop para outros times (objeto teams ou teamID).
### <code r>
# setwd(choose.dir())
setwd("C:/LAB/RBAS/dataMining")
sapply(c("RCurl", "XML", "RJSONIO"), require, character.only=T)
htmRaw <- getURL(myURL)
htmLin <- readLines(txtCon <- textConnection(htmRaw)); close(txtCon)
### Teams (IDs for future looping)
pageTree <- htmlTreeParse(htmLin, error=function(...){}, useInternalNodes = TRUE)
teamsNames <- as.character(xpathApply(pageTree, "//*/select[@id='teams']//option", xmlValue))
teamsID <- xpathApply(pageTree, "//*/select[@id='teams']//option")
teamsID <- sapply(teamsID, xmlGetAttr, 'value')
teamsID <- as.integer(gsub("^.*Teams\\/(.*)", "\\1", teamsID))
teams <- data.frame(teamsID, teamsNames, stringsAsFactors=F); teams
### Info about a specific team (Fluminense)
sLin <- grep("DataStore.prime\\(\\'stage-player-stat\\'", htmLin)
sDat <- htmLin[sLin]
dJSON <- gsub("^.*DataStore.*\\[(.*)\\]);", "\\[\\1\\]", sDat)
convertJSONDate = function(x) {
if(grepl("/?(new )?Date\\(", x)) {
val = gsub(".*Date\\(([0-9]+)\\).*", "\\1", x)
as.Date(structure((as.numeric(val)/1000), class = c("POSIXct", "POSIXt")))
} else x }
myList <- fromJSON(dJSON, nullValue=NA, stringFun=convertJSONDate)
length(myList)
myListVars <- as.vector(sapply(myList[1], names)); myListVars
fullDF <- data.frame(t(sapply(myList, as.vector)), stringsAsFactors=FALSE)
shortListVars <- c("TeamRegionCode","Name","PositionShort","Age","Height","Weight","GameStarted","Goals","Assists","Yellow","Red","TotalShots","TotalPasses", "AccuratePasses","AerialWon","ManOfTheMatch","Rating")
head(fullDF[shortListVars])
### <code>