This package is no longer maintained as of 2021/01/30. Any outstanding issues or new ones will not be fixed
This is a package written in Python to scrape the NBA's api and produce the
play by play of games either in a
csv file or a
pandas dataframe. This package
has two main functions
scrape_game which scrapes an individual game or a list
of specific games, and
scrape_season which scrapes an entire season of regular
The scraper goes back to the 1999-2000 season and will pull the play by play along with who was on the court at the time of each play. Some other various statistics may be calculated as well.
As of version 1.0.8 the scraper will now scrape WNBA games as well as NBA games.
wnba_scrape_game instead of
scrape_game. The parameters and usage is
exactly the same as
scrape_game function. As of right now I know it goes
back to the 2005 season maybe further just haven't tested.
Be warned it is much slower than the nba scraper due to the extra api calls
needed to pull in player names that are readily available in the NBA api itself.
To install this package just type this at the command line:
pip install nba_scraper
The default data format is a pandas dataframe you can change this to csv
data_format parameter. The default file path is the
users home directory you can change this with the
import nba_scraper.nba_scraper as ns # if you want to return a dataframe # you can pass the function a list of strings or integers # all nba game ids have two leading zeros but you can omit these # to make it easier to create lists of game ids as I add them on nba_df = ns.scrape_game([21800001, 21800002]) # if you want a csv if you don't pass a file path the default is home # directory ns.scrape_game([21800001, 21800002], data_format='csv', data_dir='file/path')
data_dir key words are used the excat same way as
scrape_game. Instead of game ids though, you would pass the season you want
scraped to the function. This season is a four digit year that must be an
import nba_scraper.nba_scraper as ns #scrape a season nba_df = ns.scrape_season(2019) # if you want a csv if you don't pass a file path the default is home # directory ns.scrape_season(2019, data_format='csv', data_dir='file/path')
This allows you to scrape all regular season games in the date range passed to
the function. As of right now it will not scrape playoff games. Date format must
be passed in the format
import nba_scraper.nba_scraper as ns #scrape a season nba_df = ns.scrape_date_range('2019-01-01', 2019-01-03') # if you want a csv if you don't pass a file path the default is home # directory ns.scrape_date_range('2019-01-01', 2019-01-03', data_format='csv', data_dir='file/path')
If you have any troubles or bugs please open an issue/bug report. If you have any improvements/suggestions please submit a pull request. If it falls outside those two areas please feel free to email me at firstname.lastname@example.org.