Skip to main content

A python package for scraping kenpom.com NCAA basketball data.

Project description

kenpompy - Basketball for Nerds

Documentation Status codecov

This python package serves as a convenient web scraper for kenpom.com, which provides tons of great NCAA basketball statistics and metrics. It requires a subscription to Ken Pomeroy's site for use, otherwise only the home page will be accessible. It's a small fee for a year of access, and totally worth it in my opinion.

Objective

Ultimately, this package is to allow both hobbyist and reknown sports analysts alike to get data from kenpom in a format more suitable for visualization, transformation, and additional analysis. It's meant to be simple, easy to use, and to yield information in a way that is immediately usable.

Responsible Use

As with many web scrapers, the responsibility to use this package in a reasonable manner falls upon the user. Don't be a jerk and constantly scrape the site a thousand times a minute or you run the risk of potentially getting barred from it, which you'd likely deserve. I am in no way responsible for how you use (or abuse) this package. Be sensible.

But I Use R

Yeah, yeah, but have you heard of reticulate? It's an R interface to python that also supports passing objects (like dataframes!) between them.


Installation

kenpompy is easily installed via pip:

pip install kenpompy

What It Can (and Can't) Do

This a work in progress - it can currently scrape all of the summary, FanMatch, and miscellaneous tables, pretty much all of those under the Stats and Miscellany headings. Team and Player classes are planned, but they're more complicated and will take some time.

Usage

kenpompy is simple to use. Generally, tables on each page are scraped into pandas dataframes with simple parameters to select different seasons or tables. As many tables have headers that don't parse well, some are manually altered to a small degree to make the resulting dataframe easier to interpret and manipulate.

First, you must login:

from kenpompy.utils import login

# Returns an authenticated browser that can then be used to scrape pages that require authorization.
browser = login(your_email, your_password)

Then you can request specific pages that will be parsed into convenient dataframes:

import kenpompy.summary as kp

# Returns a pandas dataframe containing the efficiency and tempo stats for the current season (https://kenpom.com/summary.php).
eff_stats = kp.get_efficiency(browser)

Contributing

You can contribute by creating issues to highlight bugs and make suggestions for additional features. Pull requests are also very welcome.

License

kenpompy is released on the GNU GPL v3.0 license. You are free to use, modify, or redistribute it in almost any way, provided you state changes to the code, disclose the source, and use the same license. It is released with zero warranty for any purpose and I retain no liability for its use. Read the full license for additional details.

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

kenpompy-0.4.0.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

kenpompy-0.4.0-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

File details

Details for the file kenpompy-0.4.0.tar.gz.

File metadata

  • Download URL: kenpompy-0.4.0.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for kenpompy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 688c46876fb4fb08ad55578573f93ddf50bd4d2f5e338c937803d17f5bfadc37
MD5 af0dade52a80bd80688acbd2e1ab38b8
BLAKE2b-256 975df1143c5d0e5d3c4204e6fb1f11ce853cfd48bec514e1723cfa5c3bda8fd9

See more details on using hashes here.

File details

Details for the file kenpompy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: kenpompy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 30.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for kenpompy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2fdf995971194ba0beac7032d634d2298a1c628b1e648ff0c960e343fa7d7dd
MD5 086ba10ca1a9b9d1ea98f287006d0553
BLAKE2b-256 f6739b9efe933e331a2031a487fe8b15058c04590f73c916d1a9c9be8e575f32

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