Skip to main content

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:

  1. Riders
  2. Teams
  3. 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


Download files

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

Source Distribution

pcs-scraper-0.2.0.tar.gz (35.1 kB view details)

Uploaded Source

Built Distribution

pcs_scraper-0.2.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

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

Hashes for pcs-scraper-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b160c2e89a2b07394fb5381b669e199a125fd682159fa3128615a6d98f736fd4
MD5 ddace77554553ad9753342aabb73355a
BLAKE2b-256 2ae5a82e5deb44162702be2c22a572078afd1aeae2973396828208d03c00892a

See more details on using hashes here.

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

Hashes for pcs_scraper-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c0a57636657dd51541dfbca5f027fae2dbe7470c848ea5b7eea35a2963f9ae5
MD5 da59eb6e46d2ba960b653cedd18ceaf1
BLAKE2b-256 e91fea59c1c5838cd1711a306220a433f7674382aa232d93887c1dabdacefec9

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