#' @title Scrape Player Card
#' @param save default is TRUE, saves file to raw_data folder
#' @description This function allows you to scrape basic info for each player in the NBA
#' @keywords NBA basketball-reference
#' @importFrom magrittr %>%
#' @export
#' @examples
#' scrape_player_card()
#add column of playerid
scrape_player_card <- function(save = TRUE) {
base_url <- 'https://www.basketball-reference.com/'
players <- data.frame(player_name=character(),
init_season=integer(),
final_season=integer(),
position=character(),
height=character(),
weight=integer(),
dob=character(),
colleges=character(),
stringsAsFactors=FALSE)
player_links <- c()
for (letter in letters) {
url <- paste0(base_url, "players/", letter)
page <- readUrl(url)
if (!is.na(page)) {
player_table <- rvest::html_table(page,fill=T)[[1]] %>%
dplyr::rename(player_name = Player,
init_season = From,
final_season = To,
position = Pos,
height = Ht,
weight = Wt,
dob = `Birth Date`,
colleges = Colleges) %>%
dplyr::mutate(player_name = tolower(gsub("\\*","",player_name)))
players <- players %>%
dplyr::bind_rows(player_table)
lnks <- page %>%
rvest::html_nodes("tr a") %>%
rvest::html_attr("href")
lnks <- lnks[grep("/players/", lnks)]
player_links <- c(player_links,lnks)
}
print(letter)
}
players$links <- player_links
if(save==TRUE) {
utils::write.csv(players, file = "data-raw/player_card.csv", row.names = FALSE)
}
return(players)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.