Command-line tool to scrape volleyball statistics from Data Project Web Competition websites.
Volley Stats facilitates the export of data in CSV format of volleyball matches and competitions organized by entities that use Data Project WCM. The tool streamlines the collection of individual matches, match lists, and automates the retrieval of individual match data from the competition matches list.
Additionally, it documents the structure of URLs for Web Competition websites, simplifying the search for identifiers (mID, ID, PID), and also supplies acronyms for the main entities utilizing Data Project Management.
This tool is not affiliated with Genius Sports Italy.
- Python 3.8+
pip install volleystats
- Extracted Data
- Usage
- Data Project Web Competition URLs structure
- Hostname
- Pathnames and search parameters
- Federations, Confederations and Leagues Acronym
- European Volleyball
- South American Volleyball
- Troubleshooting
-
Competition
- Competition ID
- Home Team
- Guest Team
- Home Points
- Guest Points
- Date
- Stadium
-
Match
- Match ID
- Match date
- Home Team
- Guest Team
- Coach
- Stadium
- Total Points
- Break Points
- Win-Lost
- Total Serves
- Serve Erros
- Serve Points
- Total Receptions
- Reception Erros
- Positive Pass Percentage (Pos%)
- Excellent/ Perfect Pass Percentage (Exc.%)
- Total Attacks
- Attack Erros
- Blocked Attack
- Attack Points (Exc.)
- Attack Points Percentage (Exc.%)
- Block Points
volleystats [--help] --fed FED (--match MATCH | --comp COMP | --batch CSV_FILE_PATH) [--pid PID] [--log]
--fed
,-f
: Federation Acronym (required)--match
,-m
: Statistics of a single match (required, unless--comp
or--batch
are provided)--comp
,-c
: List of matches in a competition (required, unless--match
or--batch
are provided)--pid
,-p
: PID of the competition (optional, only when--comp
is provided)--batch
,-b
: CSV file path with Match IDs (Competition Matches output) (required, unless--match
or--comp
are provided)--log
,-l
: View the logging during scraping--help
,-h
: Show help message
volleystats --fed FED --match MATCH
-
Brazilian Volleyball Confederation
- Data Project website: https://cbv-web.dataproject.com/MatchStatistics.aspx?mID=1623
- Federation Acronym: CBV
- Match ID: 1623
- Command: $
volleystats --fed cbv --match 1623
- Output files:
data/cbv-1623-22-10-28-guest-baruerivolleyballclub.csv data/cbv-1623-22-10-28-home-fluminense.csv
-
Lithuanian Volleyball Federation
- Data Project website: https://lvf-web.dataproject.com/MatchStatistics.aspx?mID=2093
- Federation Acronym: LVF
- Match ID: 2093
- Command: $
volleystats --fed lvf --match 2093
- Output files:
data/lvf-2093-2022-11-23-guest-jonavossc.csv data/lvf-2093-2022-11-23-home-svaja-viktorija-lsu.csv
volleystats --fed FED --comp COMP
- Brazilian Volleyball Confederation
- Data Project website: https://cbv-web.dataproject.com/CompetitionMatches.aspx?ID=18
- Federation Acronym: CBV
- Competition ID: 18
- Command: $
volleystats --fed cbv --comp 18
- Output file:
data/cbv-18-2022-2023-competition-matches.csv
In some competitions, PID can be used to distinguish between seasons, such as regular season and playoffs. Therefore, it is necessary to submit this value to obtain statistics separately.
volleystats --fed FED --comp COMP --pid PID
- Bundesliga
- Data Project website: https://vbl-web.dataproject.com/CompetitionMatches.aspx?ID=162&PID=173
- Federation Acronym: VBL
- Competition ID: 162
- PID: 173
- Season: Regular
- Command: $
volleystats --fed vbl --comp 162 --pid 173
- Output file:
data/vbl-162-173-2022-2023-competition-matches.csv
- Data Project website: https://vbl-web.dataproject.com/CompetitionMatches.aspx?ID=162&PID=174
- Federation Acronym: VBL
- Competition ID: 162
- PID: 174
- Season: Playoffs
- Command: $
volleystats --fed vbl --comp 162 --pid 174
- Output file:
data/vbl-162-174-2023-2023-competition-matches.csv
volleystats --fed FED --batch CSV_FILE_PATH
- Brazilian Volleyball Confederation
- Data Project website: https://cbv-web.dataproject.com/MatchStatistics.aspx?mID=ID
- Federation Acronym: CBV
- CSV file path (output of the Competition Matches): data/cbv-18-2022-2023-competition-matches.csv
- Command: $
volleystats --fed cbv --batch data/cbv-18-2022-2023-competition-matches.csv
- Output files:
data/cbv-1623-22-10-28-guest-baruerivolleyballclub.csv data/cbv-1623-22-10-28-home-fluminense.csv data/cbv-1618-2022-11-01-guest-energis8sãocaetano.csv data/cbv-1618-2022-11-01-home-esporteclubepinheiros.csv data/cbv-1619-2022-11-01-guest-abelmodavolei.csv data/cbv-1619-2022-11-01-home-gerdauminas.csv ...
volleystats --help
volleystats --fed FED (--match MATCH | --comp COMP | --batch CSV_FILE_PATH) --log
.
|`.
| `.
|-_ `.
| -_ `._
____________________|____-_ _|_______________,
', -_| ',
', | ',
', | ',
',_____________________|______________________',
volleystats: started
volleystats: data/cbv-1623-22-10-28-home-fluminense.csv file was created
volleystats: data/cbv-1623-22-10-28-guest-baruerivolleyballclub.csv file was created
volleystats: finished
-
Hostname:
<Fed_Acronym>
-web.dataproject.com -
Pathnames and search parameters:
-
/MainHome
-
/History?ID=
<Fed_ID>
-
/CompetitionHome?ID=
<Category_ID>
(could be Women, Men, Pro or Youth, e.g.) -
/CompetitionMatches?ID=
<Competition_ID>
&PID=<PID>
(PID could be regular season or playoffs, e.g.) -
/MatchStatistics?mID=
<Match_ID>
&ID=<Competition_ID>
-
European Volleyball
fshv
: Albanian Volleyball Federationbvl
: Baltic Leaguebevl
: Belgium Volleyball Federationosbih
: Bosnia and Herzegovina Volleyball Federationbvf
: Bulgarian Volleyball Federationvbl
: Bundesligahos
: Croatian Volleyball Federationcvf
: Czech Volleyball Federationevf
: Estonian Volleyball Federationfbf
: Faroe Islands Volleyball Associationlml
: Finland Volleyball Leagueeope
: Hellenic Volleyball Federationhvl
: Hellenic Volleyball Leaguehvf
: Hungary Volleyball Federationbli
: Icelandic Volleyball Associationiva
: Israel Volleyball Associationfipav
: Italian Volleyball Federationvfrk
: Volleyball Federation of Republic of Kazakhstanlatvf
: Latvian Volleyball Federationlnv
: Ligue Nationale de Volleylvf
: Lithuanian Volleyball Federationmva
: Malta Volleyball Associationnvbf
: Norwegian Volleyball Federationfpv
: Portuguese Volleyball Federationfrv
: Romanian Volleyball Federationossrb
: Serbian Volleyball Federationsvf
: Slovak Volleyball Federationozs
: Slovenian Volleyball Federationrfevb
: Spanish Volleyball Federationsvbf
: Swedish Volleyball Federationswi
: Swiss Volleytvf
: Turkish Volleyball Federationuvf
: Ukrainian Volleyball Federationpvlu
: Professional Volleyball League of Ukraine
South American Volleyball
feva
: Argentine Volleyball Federationcbv
: Brazilian Volleyball Confederationfcv
: Cordoba Volleyball Federationfpdv
: Peruvian Volleyball Federation
In some cases, empty files may be returned, usually named as <fed_acronym>-<match_id>-guest_stats.csv
and <fed_acronym>-<match_id>-home_stats.csv
. This can happen due to the hiding of a match in the competition listing, either because it was canceled or incorrectly entered. The match is hidden from view, but it remains accessible in the HTML, causing the tool to return an empty file. In such cases, simply ignore and delete this file.
It can also happen that the data is only available in PDF, which makes scraping impossible.
$ git clone [email protected]:claromes/volleystats.git
$ cd volleystats
$ pip install -r requirements.txt
$ pip install --editable .