def main(): arg_parser = argparse.ArgumentParser( description="Get all trades for the NHL for the given seasons") arg_parser.add_argument( 'start_season', type=int, help= "Earliest season for which to scrape data. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)" ) arg_parser.add_argument( '--range', type=int, help= "Choose the latest season to parse to parse many seasons at once. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)", required=False) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season results_array = [] for season in reversed(range(start_season, end_season + 1)): trades.get_nhl_trades(season, results_array) helpers.export_array_to_csv( results_array, '{0}-{1}_nhl_trades.csv'.format(start_season, end_season)) print("Success!")
def main(): arg_parser = argparse.ArgumentParser( description="Get draft picks from the specified NHL draft") arg_parser.add_argument('start_season', type=int, help="Earliest draft to scrape") arg_parser.add_argument('--range', type=int, help="Latest draft to scrape", required=False) arg_parser.add_argument( '--extra', action='store_true', help= "Whether to show extra information about each player (significantly slower)" ) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season results_array = [] for season in range(start_season, end_season + 1): print('Scraping NHL Draft {0}'.format(season)) results_array = draft.get_draft_picks(season, results_array, args.extra) helpers.export_array_to_csv( results_array, 'nhl_draft_{0}-{1}.csv'.format(start_season, end_season)) print("Success!")
def main(): arg_parser = argparse.ArgumentParser(description="Get all-time games played, goals, assists, and points from any league") arg_parser.add_argument('league', help="League of which to get all-time stats") args = arg_parser.parse_args() results_array = alltime.get_all_time_stats(args.league) helpers.export_array_to_csv(results_array, '{0}_all_time_stats.csv'.format(args.league)) print("Success!")
def main(): arg_parser = argparse.ArgumentParser(description="Get all trades for the NHL for the given seasons") arg_parser.add_argument('start_season', type=int, help="Earliest season for which to scrape data. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)") arg_parser.add_argument('--range', type=int, help="Choose the latest season to parse to parse many seasons at once. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)", required=False) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season results_array = [] for season in reversed(range(start_season, end_season + 1)): trades.get_nhl_trades(season, results_array) helpers.export_array_to_csv(results_array, '{0}-{1}_nhl_trades.csv'.format(start_season, end_season)) print("Success!")
def main(): arg_parser = argparse.ArgumentParser(description="Get all goals from a chosen chl league season") arg_parser.add_argument('season', type=int, help="Season ID") arg_parser.add_argument('league', type=str, help="League to scrape (qmjhl or ohl)") args = arg_parser.parse_args() league = args.league.lower() if league == 'qmjhl': results_array = qmjhl.get_qmjhl_stats(args.season) elif league == 'ohl': results_array = ohl.get_ohl_stats(args.season) else: print('Invalid League') return helpers.export_array_to_csv(results_array, '{0}-{1}.csv'.format(args.league, args.season)) print("Success!")
def main(): arg_parser = argparse.ArgumentParser(description="Get draft picks from the specified NHL draft") arg_parser.add_argument('start_season', type=int, help="Earliest draft to scrape") arg_parser.add_argument('--range', type=int, help="Latest draft to scrape", required=False) arg_parser.add_argument('--extra', action='store_true', help="Whether to show extra information about each player (significantly slower)") args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season results_array = [] for season in range(start_season, end_season + 1): print('Scraping NHL Draft {0}'.format(season)) results_array = draft.get_draft_picks(season, results_array, args.extra) helpers.export_array_to_csv(results_array, 'nhl_draft_{0}-{1}.csv'.format(start_season, end_season)) print("Success!")
away_roster = game_tables[tableIndex] away_players = away_roster.find_all('tr') for playerIndex in range(1, len(away_players)): away_roster_array.append(name_swap(away_players[playerIndex].a.text.replace(' ',''))) home_roster = game_tables[tableIndex + 2] home_players = home_roster.find_all('tr') for playerIndex in range(1, len(home_players)): home_roster_array.append(name_swap(home_players[playerIndex].a.text.replace(' ',''))) break except: None away_roster = ','.join(''.join(elems) for elems in away_roster_array) home_roster = ','.join(''.join(elems) for elems in home_roster_array) away_roster_array.clear() home_roster_array.clear() schedule_array[gameIndex][11] = away_roster schedule_array[gameIndex][12] = home_roster # EXPORT ARRAYS TO CSV FILES helpers.export_array_to_csv(schedule_array, '{0}-{1}-schedule.csv'.format(league, season)) helpers.export_array_to_csv(goal_array, '{0}-{1}-goals.csv'.format(league, season)) #helpers.export_array_to_csv(boxscore_array, '{0}-{1}-playerbox.csv'.format(league, season)) #helpers.export_array_to_csv(player_array, "AHL-players.csv") print("Complete")
period, time, scorer, assist1, assist2, '', strength, gf_onice, ga_onice, situation, notes ]) # Add to total time in beyond 60 minutes if period == 'O': extra_minutes = int(time[:time.index(":")]) extra_seconds = float(time[time.index(":") + 1:]) / 60 total_time = float(total_time) + float( extra_minutes) + extra_seconds schedule_array[gameIndex][13] = total_time # Penalty table # ------------- penalty_table = game_tables[14] penalties = penalty_table.find_all('tr')[1:] # EXPORT ARRAYS TO CSV FILES helpers.export_array_to_csv(schedule_array, '{0}-{1}-schedule.csv'.format(league, season)) helpers.export_array_to_csv(goal_array, '{0}-{1}-goals.csv'.format(league, season)) helpers.export_array_to_csv(boxscore_array, '{0}-{1}-playerbox.csv'.format(league, season)) helpers.export_array_to_csv(player_array, '{0}-{1}-players.csv'.format(league, season)) print("Complete")
def main(): arg_parser = argparse.ArgumentParser(description="Get prospect data from any league on the planet over a range of seasons") arg_parser.add_argument('--roster', action='store_true', help="Output roster list for the given league(s) and season(s)") arg_parser.add_argument('--team_roster', action='store_true', help="Output roster list for the given team and season(s)") arg_parser.add_argument('--stats', action='store_true', help="Output stats list for the given league(s) and season(s)") arg_parser.add_argument('--standings', action='store_true', help="All teams in league, with goals for/against") arg_parser.add_argument('--multiple_teams', action='store_true', help="Whether to show all teams a player has played for") arg_parser.add_argument('leagues', type=helpers.comma_delimited_list, help="Comma-delimited list (no spaces) of leagues") arg_parser.add_argument('start_season', type=int, help="Earliest season for which to scrape data. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)") arg_parser.add_argument('--range', type=int, help="Choose the latest season to parse to parse many seasons at once. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)", required=False) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season multiple_teams = args.multiple_teams if args.roster: results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): try: roster.get_player_rosters(league, season, results_array, multiple_teams) except Exception as e: print('Error in {0} {1}'.format(league, season)) print(e) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_rosters.csv'.format(start_season, end_season, '-'.join(args.leagues))) if args.team_roster: results_array = [] # When running team_rosters, the 'leagues' argument is actually teams for league in args.leagues: for season in range(start_season, end_season + 1): try: teamroster.get_team_roster('team.php?team={0}&year0={1}'.format(league, season), season, results_array=results_array) except Exception as e: print('Error in {0} {1}'.format(league, season)) print(e) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_team_rosters.csv'.format(start_season, end_season, '-'.join(args.leagues))) if args.stats: results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): try: stats.get_player_stats(league, season, results_array, multiple_teams) except Exception as e: print('Error in {0} {1}'.format(league, season)) print(e) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_stats.csv'.format(start_season, end_season, '-'.join(args.leagues))) if args.standings: results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): try: standings.get_league_standings(league, season, results_array) except Exception as e: print('Error in {0} {1}'.format(league, season)) print(e) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_standings.csv'.format(start_season, end_season, '-'.join(args.leagues))) print("Success!")
## player_table = player_page.find("div", class_="table-view") ## birthday = player_table.find('div').find('div').find('ul').find('li').find_all('div')[1].text.replace('\n','') ## birthday = birthday[1:len(birthday)-1] ## print(overall, player_url, birthday) ## except: ## birthday = "" birthday = "" draft_array.append([ season, roundIndex, overall, team, playername, pos, seasons, games, goals, assists, points, pims, birthday, playerid ]) # EXPORT ARRAYS TO CSV FILES helpers.export_array_to_csv(draft_array, 'draft-alternate-{0}-{1}.csv'.format(first_season, last_season)) print("Complete")
## try: ## plus_list[plus_index] = lineups_dict[player_id] ## except KeyError: ## plus_list[plus_index] = plus_split[plus_index] # Format strength (#v#) for_strength = plus.count(',') against_strength = minus.count(',') strength = str(for_strength) + "v" + str(against_strength) # Format strength situation situation = score[score.index("(") + 1:] situation = situation[:situation.index(")")] #print(game_id," ",date," ",scorer) goal_array.append([ season, season_type, league, game_id, date, gf_team, ga_team, period, time, scorer, assist1, assist2, '', strength, gf_onice, ga_onice, situation, away_team, home_team ]) helpers.export_array_to_csv(goal_array, "{0}-{1}-goals.csv".format(league, season)) helpers.export_array_to_csv(schedule_array, "{0}-{1}-schedule.csv".format(league, season)) helpers.export_array_to_csv(player_array, "{0}-{1}-players.csv".format(league, season)) print("Complete")
def main(): arg_parser = argparse.ArgumentParser( description="Get all goals from a chosen chl league season.\n" "Allowed Leagues: {0}".format(", ".join(allowed_leagues)), formatter_class=argparse.RawTextHelpFormatter ) arg_parser.add_argument('leagues', type=helpers.comma_delimited_list, help="CHL leagues to scrape") arg_parser.add_argument('start_season', type=int, help="Starting season (i.e. 2018 for 2017-18)") arg_parser.add_argument('--range', type=int, help="Ending season", required=False) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season goals_results = [] penalties_results = [] games_results = [] players_results = [] for raw_league in args.leagues: league = raw_league.lower() if league not in allowed_leagues: print('Invalid League: {0}'.format(league)) return #if league == 'ahl': # print('AHL support requires further work') # return seasons = helpers.get_json('http://cluster.leaguestat.com/feed/?feed=modulekit&view=seasons&key={0}&fmt=json&client_code={1}&lang=en&league_code=&fmt=json'.format(hockeytech_api.get_api_key(league), hockeytech_api.get_league_code(league)))['SiteKit']['Seasons'] selected_seasons = filter( lambda season: start_season <= int(season['end_date'][0:4]) <= end_season and season['career'] == '1' and 'pre season' not in season['season_name'].lower() and 'pre-season' not in season['season_name'].lower() and 'tie break' not in season['season_name'].lower() and 'tie-break' not in season['season_name'].lower() and 'playoffs' not in season['season_name'].lower(), seasons ) for season in reversed(list(selected_seasons)): print('Collecting ' + league.upper() + ' ' + season['season_name'] + '...', end='', flush=True) hockeytech_api.get_season_stats( season, league, goals_results, penalties_results, games_results, players_results ) print('done.') helpers.export_array_to_csv( goals_results, '{0}-{1}-{2}-goals.csv'.format('-'.join(args.leagues), start_season, end_season) ) helpers.export_array_to_csv( penalties_results, '{0}-{1}-{2}-penalties.csv'.format('-'.join(args.leagues), start_season, end_season) ) helpers.export_array_to_csv( games_results, '{0}-{1}-{2}-games.csv'.format('-'.join(args.leagues), start_season, end_season) ) helpers.export_array_to_csv( players_results, '{0}-{1}-{2}-players.csv'.format('-'.join(args.leagues), start_season, end_season) ) print("Success!")
## playerseasoncode = playercode + '.' + str(season) ## name = player[0].text ## gp = player[3].text ## cf = player[4].text ## ca = player[5].text ## cf_pct = player[6].text ## cf_rel = player[7].text ## ff = player[8].text ## fa = player[9].text ## ff_pct = player[10].text ## ff_rel = player[11].text ## toi60 = player[17].text ## toiEV = player[18].text ## tk = player[19].text ## gv = player[20].text ## e_pm = player[21].text ## icf = player[22].text ## thru_pct = player[23].text ## ## print(playerseasoncode, name, gp, cf_pct) print("Complete") # EXPORT ARRAYS TO CSV FILES helpers.export_array_to_csv( roster_array, 'hockeyreference-rosters-{0}-{1}.csv'.format(firstSeason, lastSeason)) helpers.export_array_to_csv( stats_array, 'hockeyreference-stats-{0}-{1}.csv'.format(firstSeason, lastSeason)) #helpers.export_array_to_csv(corsi_array, 'hockeyreference-corsi-{0}-{1}.csv'.format(firstSeason, lastSeason))
def main(): arg_parser = argparse.ArgumentParser( description="Get prospect data from any league on the planet over a range of seasons") arg_parser.add_argument('--roster', action='store_true', help="Output roster list for the given league(s) and season(s)") arg_parser.add_argument('--team_roster', type=str, help="Output roster list for the given team and season(s)") arg_parser.add_argument('--stats', action='store_true', help="Output stats list for the given league(s) and season(s)") arg_parser.add_argument('--team_stats', type=str, help="Output stats list for the given team and season(s)") arg_parser.add_argument('--playoffs', action='store_true', help="Use playoff instead of regular season stats") arg_parser.add_argument('--standings', action='store_true', help="All teams in league, with goals for/against") arg_parser.add_argument( '--icetime', action='store_true', help="NHL icetime for season") arg_parser.add_argument('--multiple_teams', action='store_true', help="Whether to show all teams a player has played for") arg_parser.add_argument('leagues', type=helpers.comma_delimited_list, help="Comma-delimited list (no spaces) of leagues") arg_parser.add_argument('start_season', type=int, help="Earliest season for which to scrape data. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)") arg_parser.add_argument( '--range', type=int, help="Choose the latest season to parse to parse many seasons at once. Second year of the season (i.e. passing 2014 refers to the 2013-14 season)", required=False) args = arg_parser.parse_args() start_season = args.start_season end_season = args.range if args.range is not None else args.start_season multiple_teams = args.multiple_teams playoffs = args.playoffs if args.icetime: if len(args.leagues) is not 1 or args.leagues[0].lower() != "nhl": print("Error: Icetime is currently only supported for the NHL") return results_array = [] for season in range(start_season, end_season + 1): icetime.get_nhl_season_icetime(season, results_array) helpers.export_array_to_csv( results_array, '{0}-{1}_{2}_icetime.csv'.format(start_season, end_season, 'nhl')) if args.roster: results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): roster.get_player_rosters(league, season, results_array, multiple_teams) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_rosters.csv'.format( start_season, end_season, '-'.join(args.leagues))) if args.team_roster is not None: results_array = [] if len(args.leagues) != 1: print( 'Error: must supply a single league for the team you wish to fetch the roster of') else: league = args.leagues[0] for season in range(start_season, end_season + 1): teamroster.get_team_roster('https://eliteprospects.com/team.php?team={0}&year0={1}'.format( args.team_roster, season), season, league, results_array=results_array) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_team_rosters.csv'.format( start_season, end_season, '-'.join(args.leagues))) if args.team_stats is not None: results_array = [] goalie_results_array = [] if len(args.leagues) != 1: print( 'Error: must supply a single league for the team you wish to fetch stats for') else: league = args.leagues[0] for season in range(start_season, end_season + 1): team_stats.get_player_stats( 'https://www.eliteprospects.com/team/{}/{}-{}?tab=stats#players'.format( args.team_stats, int(season) - 1, season ), season, league, results_array=results_array, goalie_results_array=goalie_results_array ) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_team_stats.csv'.format( start_season, end_season, '-'.join(args.leagues))) helpers.export_array_to_csv(goalie_results_array, '{0}-{1}_{2}_team_goalie_stats.csv'.format( start_season, end_season, '-'.join(args.leagues))) if args.stats: results_array = [] goalie_results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): stats.get_player_stats( league, season, results_array, goalie_results_array) helpers.export_array_to_csv( results_array, '{0}-{1}_{2}{3}_stats.csv'.format(start_season, end_season, '-'.join( args.leagues), '_playoff' if playoffs else '') ) helpers.export_array_to_csv( goalie_results_array, '{0}-{1}_{2}{3}_goalie_stats.csv'.format(start_season, end_season, '-'.join( args.leagues), '_playoff' if playoffs else '') ) if args.standings: results_array = [] for league in args.leagues: for season in range(start_season, end_season + 1): standings.get_league_standings( league, season, results_array) helpers.export_array_to_csv(results_array, '{0}-{1}_{2}_standings.csv'.format( start_season, end_season, '-'.join(args.leagues))) print("Success!")