我想用rvest刮掉一张NBA球队的统计数据,我尝试过使用:
表格元素
library(rvest)
url_nba <- "http://stats.nba.com/teams/advanced/#!?sort=TEAM_NAME&dir=-1"
team_stats <- url_nba %>% read_html %>% html_nodes('table') %>% html_table
xpath(通过谷歌浏览器检查)
team_stats <- url_nba %>%
read_html %>%
html_nodes(xpath="/html/body/main/div[2]/div/div[2]/div/div/nba-stat-table/div[1]/div[1]/table") %>%
html_table
css选择器(通过mozilla检查):
team_stats <- url_nba %>%
read_html %>%
html_nodes(".nba-stat-table__overflow > table:nth-child(1)") %>%
html_table
但没有运气。任何帮助将不胜感激。
答案 0 :(得分:1)
这个问题与此问题非常相似:How to select a particular section of JSON Data in R?
您请求的数据不存储在html代码中,因此使用rvest失败。请求的数据存储为XHR文件,可以直接访问:
$C$100
将数据加载到nba变量后,使用httr和jsonlite清理数据:
library(httr)
library(jsonlite)
nba<-GET('http://stats.nba.com/stats/leaguedashteamstats?Conference=&DateFrom=&DateTo=&Division=&GameScope=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Advanced&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2016-17&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&VsConference=&VsDivision=' )
我强烈建议您阅读上面链接的问题的答案。