Skip to main content

No project description provided

Project description

NFL ESPN Scraper

The purpose of this repository is to scrape NFL data from ESPN and load it into pandas dataframes.

Introduction

The scraping tool is designed to provide an easy, free way to extract and clean individual game data for the following positions:

  • Quarterback
  • Running Back
  • Wide Receiver
  • Tight End
  • Kicker

In addition to game data, the birthdate of the player is scraped and used to calculate age by game.

Installation

Use the package manager pip to install nfl_espn_scraper.

pip install nfl_espn_scraper

Testing Suite

This repository includes a testing suite to ensure the accuracy and consistency of data processing for NFL player game logs. The suite performs two main types of tests:

  1. Specific Case Tests
    A set of functions test complete equality for specific players, including a running back (Christian McCaffrey), quarterback (Patrick Mahomes), and kicker (Justin Tucker). These tests verify that all games from the last five seasons for these players are being scraped and processed correctly.

  2. General Property Tests
    Another set of functions checks the integrity of individual stats by verifying data types, ranges, and lengths. This allows users to validate new player data, as different player datasets may vary in structure. For example, some stats might have unique formatting, such as games played in Europe, which are denoted differently in the scraped tables. If a test fails, it typically indicates that a modification is needed to handle an edge case. For instance, a player playing an international game might have a note about the location in the center of the table being scraped, as seen here: Trevor Lawrence 2023 game log.

Usage

import player as plyr
import pandas as pd
import test as ts

Select player and seasons. A csv file of players is included to simplify this process. Set the player_csv_index variable to your desired player or enter their information in the following step.

seasons = [2022, 2023]
player_csv_index = 0

Get player information from csv file or enter player information if not included in the csv file.

df = pd.read_csv("players.csv")
first = df['first_name'][player_csv_index]
last = df['last_name'][player_csv_index]
id = df['espn_id'][player_csv_index]
position = df['pos'][player_csv_index]

Create Player Object

patrick_mahomes = plyr.Player(first, last, id, position)

Add Seasons to Game Log

for season in seasons:
    patrick_mahomes.Set_Season(season)
    patrick_mahomes.Set_Game_Log()

Get Game Log

game_log = patrick_mahomes.Get_Game_Log()

Verify with General Property Tests

test = ts.test()
test.verify_espn_pull(game_log, first, last)

Patrick Mahomes Game Log

print(game_log)

       LAST    FIRST    GAME_DT    AGE    OPP     RESULT CMP ATT PASS_YDS  CMP% PASS_AVG PASS_TD INT PASS_LNG SACK    RTG   QBR CAR RUSH_YDS RUSH_AVG RUSH_TD RUSH_LNG
0   Mahomes  Patrick 2022-09-11  26.98   @ARI     W44-21  30  39      360  76.9      9.2       5   0       35    0  144.2  94.9   3        5      1.7       0        4
1   Mahomes  Patrick 2022-09-15  26.99  vsLAC     W27-24  24  35      235  68.6      6.7       2   0       41    1  106.2  66.6   2       -1     -0.5       0        0
2   Mahomes  Patrick 2022-09-25  27.02   @IND     L20-17  20  35      262  57.1      7.5       1   1       53    1   78.5  71.8   4       26      6.5       0       10
3   Mahomes  Patrick 2022-10-02  27.04    @TB     W41-31  23  37      249  62.2      6.7       3   1       36    3   97.7  90.6   4       34      8.5       0       11
4   Mahomes  Patrick 2022-10-10  27.06   vsLV     W30-29  29  43      292  67.4      6.8       4   0       36    3  117.6  65.5   4       28      7.0       0       16
5   Mahomes  Patrick 2022-10-16  27.08  vsBUF     L24-20  25  40      338  62.5      8.5       2   2       42    3   85.2  58.0   4       21      5.3       0       10
6   Mahomes  Patrick 2022-10-23  27.10    @SF     W44-23  25  34      423  73.5     12.4       3   1       57    1  132.4  91.9   0        0      0.0       0        0
7   Mahomes  Patrick 2022-11-06  27.14  vsTEN  W20-17 OT  43  68      446  63.2      6.6       1   1       33    4   80.9  72.7   6       63     10.5       1       20
8   Mahomes  Patrick 2022-11-13  27.16  vsJAX     W27-17  26  35      331  74.3      9.5       4   1       46    0  129.6  93.4   7       39      5.6       0       19
9   Mahomes  Patrick 2022-11-20  27.18   @LAC     W30-27  20  34      329  58.8      9.7       3   0       40    1  120.8  82.4   4       23      5.8       0       16
10  Mahomes  Patrick 2022-11-27  27.19  vsLAR     W26-10  27  42      320  64.3      7.6       1   1       39    0   85.4  69.6   4       36      9.0       0       13
11  Mahomes  Patrick 2022-12-04  27.21   @CIN     L27-24  16  27      223  59.3      8.3       1   0       42    2   98.2  91.5   2        9      4.5       1        6
12  Mahomes  Patrick 2022-12-11  27.23   @DEN     W34-28  28  42      352  66.7      8.4       3   3       56    2   86.6  66.9   3       -3     -1.0       0       -1
13  Mahomes  Patrick 2022-12-18  27.25   @HOU  W30-24 OT  36  41      336  87.8      8.2       2   0       21    2  117.1  93.5   5       33      6.6       1       14
14  Mahomes  Patrick 2022-12-24  27.27  vsSEA     W24-10  16  28      224  57.1      8.0       2   0       52    1  106.8  37.6   2        8      4.0       1        5
15  Mahomes  Patrick 2023-01-01  27.29  vsDEN     W27-24  29  42      328  69.1      7.8       3   1       38    0  106.1  67.2   4        8      2.0       0        4
16  Mahomes  Patrick 2023-01-07  27.31    @LV     W31-13  18  26      202  69.2      7.8       1   0       67    2  105.0  82.9   3       29      9.7       0       14
32  Mahomes  Patrick 2023-09-07  27.97  vsDET     L21-20  21  39      226  53.9      5.8       2   1       34    0   77.5  66.9   6       45      7.5       0       16
31  Mahomes  Patrick 2023-09-17  28.00   @JAX      W17-9  29  41      305  70.7      7.4       2   1       54    1   98.1  71.8   7       30      4.3       0       14
30  Mahomes  Patrick 2023-09-24  28.02  vsCHI     W41-10  24  33      272  72.7      8.2       3   0       37    0  127.3  86.3   3       28      9.3       0       15
29  Mahomes  Patrick 2023-10-01  28.04   @NYJ     W23-20  18  30      203  60.0      6.8       1   2       34    1   63.6  81.8   7       51      7.3       0       25
28  Mahomes  Patrick 2023-10-08  28.06   @MIN     W27-20  31  41      281  75.6      6.9       2   0       33    2  109.9  83.6   0        0      0.0       0        0
27  Mahomes  Patrick 2023-10-12  28.07  vsDEN      W19-8  30  40      306  75.0      7.7       1   1       40    2   94.4  66.0   6       31      5.2       0       15
26  Mahomes  Patrick 2023-10-22  28.10  vsLAC     W31-17  32  42      424  76.2     10.1       4   1       53    1  129.5  93.9   4       29      7.3       0       23
25  Mahomes  Patrick 2023-10-29  28.12   @DEN      L24-9  24  38      240  63.2      6.3       0   2       39    3   59.1  51.3   3       20      6.7       0        8
24  Mahomes  Patrick 2023-11-05  28.13  vsMIA     W21-14  20  30      185  66.7      6.2       2   0       25    2  105.6  49.2   6       24      4.0       0       16
23  Mahomes  Patrick 2023-11-20  28.18  vsPHI     L21-17  24  43      177  55.8      4.1       2   1       17    1   71.6  36.9   6       38      6.3       0       14
22  Mahomes  Patrick 2023-11-26  28.19    @LV     W31-17  27  34      298  79.4      8.8       2   0       39    1  122.8  83.7   5        9      1.8       0        7
21  Mahomes  Patrick 2023-12-03  28.21    @GB     L27-19  21  33      210  63.6      6.4       1   1       27    3   79.1  52.2   4       26      6.5       0       10
20  Mahomes  Patrick 2023-12-10  28.23  vsBUF     L20-17  25  43      271  58.1      6.3       1   1       23    1   74.9  28.9   1        8      8.0       0        8
19  Mahomes  Patrick 2023-12-17  28.25    @NE     W27-17  27  37      305  73.0      8.2       2   2       48    3   92.7  65.7   3       -5     -1.7       0       -1
18  Mahomes  Patrick 2023-12-25  28.27   vsLV     L20-14  27  44      235  61.4      5.3       1   1       45    4   73.6  32.3  10       53      5.3       0       13
17  Mahomes  Patrick 2023-12-31  28.29  vsCIN     W25-17  21  29      245  72.4      8.4       1   0       67    2  109.1  52.8   4        2      0.5       0        2

Contributing

Pull requests are welcome. For any questions or support, feel free to reach out!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nfl_espn_scraper-0.3.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

nfl_espn_scraper-0.3-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file nfl_espn_scraper-0.3.tar.gz.

File metadata

  • Download URL: nfl_espn_scraper-0.3.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.8

File hashes

Hashes for nfl_espn_scraper-0.3.tar.gz
Algorithm Hash digest
SHA256 43a3ab94c69784850437187afb8107b997668f308481445c68b136f24641a0cb
MD5 2f1d66cc131d2f69409e1fac33f7db02
BLAKE2b-256 6684cc6609bc789d8664625694ec87bc0a3b8cd91034e94bbdfce85c1d5e1c97

See more details on using hashes here.

File details

Details for the file nfl_espn_scraper-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for nfl_espn_scraper-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f4c0f1ced6fe6b403784b46a84b58932f55b245f4624cb0d9ef0ca38f49a2da
MD5 9b8d4585a8c58bb45faf2e08cb9b2d35
BLAKE2b-256 31d8e2fc1fb9b4bc997e2785fcd1fb83d0401ee0e0e2aa1989a50ce7998b344e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page