A Python scraper for extracting football match listings from FootballTicketNet.com using the ScrapingAnt web scraping API.
- Scrapes football match listings from FootballTicketNet.com
- Extracts comprehensive match details:
- Event ID
- Home team and away team
- Match title
- Competition/tournament
- Venue
- City and country
- Date and time
- Event URL
- Team logo URLs
- Supports multiple tournaments (Premier League, Champions League, La Liga, etc.)
- Pagination support with configurable page limits
- Exports data to CSV and JSON formats
- Deduplicates matches automatically
- Python 3.8+
- ScrapingAnt API key (Get free API key)
Note: The ScrapingAnt free plan has a concurrency limit of 1 thread. For higher throughput, consider upgrading to a paid plan.
- Clone this repository:
git clone https://github.com/kami4ka/football-ticket-net-scraper.git
cd football-ticket-net-scraper- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set your ScrapingAnt API key:
export SCRAPINGANT_API_KEY="your_api_key_here"Scrape matches from Premier League (default, 2 pages):
python main.pypython main.py [OPTIONS]
Options:
--tournament TEXT Scrape a specific tournament only
--tournaments TEXT... Scrape multiple specific tournaments
--all-tournaments Scrape all available tournaments
--max-pages INT Maximum pages to scrape per tournament
-o, --output PATH Output CSV file path (default: output/football_tickets.csv)
--json Also export to JSON format
-v, --verbose Enable verbose output
--api-key TEXT ScrapingAnt API key (or set SCRAPINGANT_API_KEY env var)
--list-tournaments List available tournaments and exitScrape with verbose output:
python main.py --verboseScrape Premier League matches (all pages):
python main.py --tournament premier-league --verboseScrape specific number of pages:
python main.py --tournament premier-league --max-pages 3 --verboseScrape multiple tournaments:
python main.py --tournaments premier-league champions-league --verboseScrape all tournaments:
python main.py --all-tournaments --max-pages 2 --verboseExport to both CSV and JSON:
python main.py --json -o output/matches.csvList available tournaments:
python main.py --list-tournamentspremier-league- English Premier Leaguechampions-league- UEFA Champions Leaguela-liga- Spanish La Ligaserie-a- Italian Serie Abundesliga- German Bundesligaligue-1- French Ligue 1europa-league- UEFA Europa Leaguefa-cup- FA Cup
| Field | Description | Example |
|---|---|---|
| event_id | Unique event identifier | 114687 |
| home_team | Home team name | Arsenal |
| away_team | Away team name | Liverpool FC |
| match_title | Full match title | Arsenal vs Liverpool FC |
| competition | Tournament/league | Premier League |
| venue | Stadium name | Emirates Stadium |
| city | City name | London |
| country | Country name | United Kingdom |
| date | Match date | 08/01/26 |
| time | Match time | Thu 20:00 |
| event_url | Direct link to match | https://www.footballticketnet.com/... |
| home_logo_url | Home team logo URL | https://www.footballticketnet.com/theme/... |
| away_logo_url | Away team logo URL | https://www.footballticketnet.com/theme/... |
| scraped_at | Timestamp of scraping | 2026-01-05T10:30:00Z |
event_id,home_team,away_team,match_title,competition,venue,city,country,date,time,event_url,home_logo_url,away_logo_url,scraped_at
114687,West Ham United,Nottingham Forest,West Ham United vs Nottingham Forest,Premier League,London Stadium,London,United Kingdom,06/01/26,Tue 20:00,https://www.footballticketnet.com/premier-league/west-ham-united-vs-nottingham-forest,...FootballTicketNetScraper/
├── config.py # Configuration settings
├── models.py # Match and MatchCollection data classes
├── utils.py # Utility functions
├── scraper.py # Main scraper class
├── main.py # CLI entry point
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore patterns
├── output/ # Output directory for scraped data
│ └── .gitkeep
└── README.md # This file
The scraper fetches tournament pages from FootballTicketNet.com and extracts match information using CSS selectors. Each tournament page displays 25 matches with pagination support.
The site uses server-side rendering, but ScrapingAnt's browser rendering capability ensures complete page loading before extraction.
MIT License
This scraper is for educational purposes only. Please respect FootballTicketNet.com's terms of service and rate limits when using this tool. Always ensure your scraping activities comply with applicable laws and website policies.