Пример #1
0
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!")
Пример #2
0
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!")
Пример #3
0
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!")
Пример #4
0
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!")
Пример #5
0
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!")
Пример #6
0
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!")
Пример #7
0
                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")



Пример #8
0
            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")
Пример #9
0
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!")
Пример #10
0
    ##                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")
            
Пример #11
0
                    ##                        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")
Пример #12
0
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!")
Пример #13
0
    ##    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))
Пример #14
0
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!")