A python-based api to access procyclingstats data
Project description
pcs_scraper
v0.1.0 A python package to query, organize and prepare pandas dataframes from procyclingstats.com data to facilitate further analysis
Project Description
This project was undertaken as a side project while working as a data/race analyst with professional cycling teams. While commonplace for many other major sports, I couldn't find any available packages that provided access to professional cycling datasets. There were, however, already fantastic websites devoted to cataloguing this data and presenting it for free. The most user-friendly website I found was procyclingstats.com (PCS) but they didn't have a publicly available api, so I decided to make this package to interact with their posted data programmatically.
pcs_scraper lets users interact with PCS through three fundamental and distinct classes:
- Riders
- Teams
- Races
In the next versions of this project I would like to link the statistical data from PCS with rider Strava data.
Installation
Via pip:
pip install pcs-scraper
Via conda:
Coming soon
Via source code:
Fork/clone this repo and create a conda environment to develop in using:
# create environment using existing environment file
conda env create -f environment.yml
# add pcs_scraper to path for environment
cd .../anaconda3/envs/pcs_env/lib/python3.9/site-packages
nano packages.pth
# then in nano type **full path** to main pcs_scraper directory (ie. .../Users/name/Desktop/pcs_scraper)
# press control+O to save file, press control+X to exit nano
Usage
Basic
# for specific rider
# import
import pcs_scraper as pcs
# request rider object for tadej pogacar
pogacar = pcs.Rider(name = 'tadej-pogacar')
# get pogacar's entire race history
pogacar_race_hx = pogacar.get_race_history()
# for specific race
# import
import pcs_scraper as pcs
# request race object for tour de france
tdf = pcs.Race(name = 'tour-de-france', year = 2021)
# if unsure about spelling of race name according to PCS you can search using:
# race_options = pcs.race_options_by_year(2021)
# can refine output using race circuit or classification when requesting
# race_options = pcs.race_options_by_year(2021, classification = '2.UWT', circuit = 'UCI World Tour')
# request the GC results
tdf_final_gc = tdf.get_results()
# for specific team
# import
import pcs_scraper as pcs
# request team object for Ineos
ineos = pcs.Team(name = 'ineos-grenadiers', year = 2021)
# if unsure about spelling of team name according to PCS you can search using:
# team_options_2021 = pcs.teams_by_year(year = 2021, gender = 'M')
# get the riders from the team
ineos_2021_riders = ineos.get_riders()
Practical Examples
Coming soon
Documentation
Coming soon
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pcs-scraper-0.2.0.tar.gz
.
File metadata
- Download URL: pcs-scraper-0.2.0.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b160c2e89a2b07394fb5381b669e199a125fd682159fa3128615a6d98f736fd4 |
|
MD5 | ddace77554553ad9753342aabb73355a |
|
BLAKE2b-256 | 2ae5a82e5deb44162702be2c22a572078afd1aeae2973396828208d03c00892a |
File details
Details for the file pcs_scraper-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: pcs_scraper-0.2.0-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c0a57636657dd51541dfbca5f027fae2dbe7470c848ea5b7eea35a2963f9ae5 |
|
MD5 | da59eb6e46d2ba960b653cedd18ceaf1 |
|
BLAKE2b-256 | e91fea59c1c5838cd1711a306220a433f7674382aa232d93887c1dabdacefec9 |