class NbaStats::Scraper
Public Class Methods
assign_teams(teams, conference)
click to toggle source
# File lib/nba_stats/scraper.rb, line 16 def self.assign_teams(teams, conference) assigned_teams = [] teams.each do |team| name = team.text team_url = "http://www.basketball-reference.com" + team["href"] hash = {name: name, team_url: team_url, conference: conference} assigned_teams << hash unless assigned_teams.include? hash end assigned_teams end
get_player_stats(player)
click to toggle source
# File lib/nba_stats/scraper.rb, line 46 def self.get_player_stats(player) page = open_page(player.player_url) season = page.css("table#per_game tr.full_table").last stats_array = season.text.split("\n").map {|x| x.strip} stats_hash = { points_pg: stats_array[30], assists_pg: stats_array[25], rebounds_pg: stats_array[24], blocks_pg: stats_array[27], steals_pg: stats_array[26], minutes_pg: stats_array[8], fg_percentage: stats_array[11], three_percentage: stats_array[14], ft_percentage: stats_array[21] } end
get_roster(team)
click to toggle source
# File lib/nba_stats/scraper.rb, line 27 def self.get_roster(team) page = open_page(team.team_url) players_array = [] players = page.css("table#roster tr") players.drop(1).each do |player| data_array = player.text.split("\n").map {|x| x.strip} number = data_array[1] name = data_array[2] position = data_array[3] height = data_array[4] data_array[8] == "R" ? experience = "Rookie" : experience = data_array[8] + " Years" player_url = "http://www.basketball-reference.com" + player.css("a").first["href"] hash = {name: name, number: number, position: position, height: height, experience: experience, player_url: player_url} players_array << hash end players_array end
get_teams()
click to toggle source
# File lib/nba_stats/scraper.rb, line 7 def self.get_teams page = open_page("http://www.basketball-reference.com/leagues/NBA_2016_standings.html") east_teams = page.css("table#E_standings td a") west_teams = page.css("table#W_standings td a") assign_teams(west_teams, "West") + assign_teams(east_teams, "East") end
open_page(url)
click to toggle source
# File lib/nba_stats/scraper.rb, line 3 def self.open_page(url) Nokogiri::HTML(open(url)) end