This project scrapes soccer match information from https://catigoal.com/{event}/matches
and
stores the data as JSON. The parser respects colspan
attributes on both header and data
cells so tables are accurately mapped to JSON. When a header cell spans multiple columns,
each column is named sequentially (e.g. Teams_1
, Teams_2
, Teams_3
).
Install dependencies with uv:
uv sync
Specify a list of events in config.yaml
:
events:
- RCJE2025
- OTHEREVENT
Run the fetcher to download match tables and store them under data/{event}/matches.json
:
uv run python -m soccer_matches.fetch
Alternatively specify events via an environment variable:
EVENTS=RCJE2025 uv run python -m soccer_matches.fetch
Note that access to catigoal.com
may require an internet connection.