Skip to main content

No project description provided

Project description

Cricguru

Overview

Cricguru is a data extraction module for extracting data from the Statsguru data query on Cricinfo. I was inspired to build a simple tool to extract dataframes from statsguru for analyzing cricket data and was finding it difficult to obtain overall figures from the website as they did not have an API for it. Cricinfo has a large variety of cricket data for all classes of cricket matches and also in-depth player data. However without an API it is impossible to extract any useful information from it. Hence this module has functions to easily get the cricket data we want without having to manually scrape the website. The data output is currently returned in the form of Pandas dataframes. You can find the full documentation here.

Team Data

Data by team can be obtained for the three main classes of cricket formats which are Test, One-day and T20. Excluding the class argument would return the overall data. In order to filter by teams and opposition you must provide one of the following ids to the team and opposition arguments respectively for some popular teams.

{"all teams": "", "Afghanistan": "40", "Australia": "2", "Bangladesh": "25", "England": "1", "ICC World XI": "140", "India": "6", "Ireland": "29", "New Zealand": "5", "Pakistan": "7", "South Africa": "3", "Sri Lanka": "8", "West Indies": "4", "Zimbabwe": "9"}

Player Data

Data by player can be obtained for the same classes mentioned above. The player class however requires a player id which can be obtained from Cricinfo by selecting a team followed by a player from that team. For example Angelo Mathew's id is 49764 which can be found appended to the url of the player's stats page on Cricinfo.

Built With

This project primarily uses Python 3.8 in combination with Pandas. Pandas is used to get the tables directly from the Statsguru query pages and convert them to dataframes. Urllib is used to format the url and append the query parameters. Poetry is used for packaging and publishing.

Getting Started

You can install the package using the following command.

pip install cricguru

Usage

You can get overall figures for all teams with the following. You must pass in the query parameters in a dictionary as shown. The "template" key with a "results" value is required along with the "class" variable which specifies which format of cricket you require data from. The classes for each format are as follows.
1 - Test
2 - ODI
3 - T20
11 - All
10 - Women's T20i
8 - Women's Test
9 - Women's ODI
20 - Youth Test
21 - Youth ODI
22 - Youth T20

from cricguru import team

team = team.Team()
query_params = {"template": "results", "class": "2"}
cric_data = team.overall(query_params)

#Returns a pandas dataframe
cric_data.head()

For player data you have to provide the player id to initialize the player object and then call the function for the type of data you require. You have to specify what type of player data you need such as allround, batting or bowling.

from cricguru import player

player = player.Player(49764)
query_params = {
    'class' : '1',
    'type' : 'allround'
}

cric_data = player.career_summary(query_params)
print(cric_data.head())

Contributing

This is an amateur project at best and I am still a complete beginner to Python and would greatly welcome any suggestions, advice, constructive criticism, best practices or contributions to the project. Simply open a pull request or issue and I will check it out.

Contact

You can also contact me at pavithranthilakanathan@gmail.com or on twitter - @pavin_v1

License

Distributed under the MIT license. See `LICENSE.md' for more information.

Acknowledgements

Todo

  • 100% code coverage
  • Additional data formats

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

cricguru-2.1.1.tar.gz (7.5 kB view hashes)

Uploaded Source

Built Distribution

cricguru-2.1.1-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

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