Skip to content

kami4ka/skiddle-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skiddle Event Scraper

A Python scraper for extracting event listings from Skiddle.com using the ScrapingAnt web scraping API.

Features

  • Scrapes event listings from Skiddle.com
  • Extracts comprehensive event details:
    • Event ID
    • Event title
    • Date and time
    • Venue name
    • City/location
    • Age restriction (18+, 14+, etc.)
    • Event image URL
    • Direct event URL
  • Supports multiple event categories (Clubs, Gigs, Festivals, etc.)
  • Exports data to CSV and JSON formats
  • Deduplicates events automatically

Prerequisites

Note: The ScrapingAnt free plan has a concurrency limit of 1 thread. For higher throughput, consider upgrading to a paid plan.

Installation

  1. Clone this repository:
git clone https://github.com/kami4ka/skiddle-scraper.git
cd skiddle-scraper
  1. Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Set your ScrapingAnt API key:
export SCRAPINGANT_API_KEY="your_api_key_here"

Usage

Basic Usage

Scrape events from Skiddle (default: 2 categories):

python main.py

Command Line Options

python main.py [OPTIONS]

Options:
  --pages INT            Number of categories to scrape (default: 2)
  --category TEXT        Scrape a specific category only
  --all-categories       Scrape all available categories
  -o, --output PATH      Output CSV file path (default: output/skiddle_events.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-categories      List available categories and exit

Examples

Scrape with verbose output:

python main.py --verbose

Scrape club events only:

python main.py --category clubs --verbose

Scrape multiple categories:

python main.py --pages 3 --verbose

Scrape all available categories:

python main.py --all-categories --verbose

Export to both CSV and JSON:

python main.py --json -o output/events.csv

List available categories:

python main.py --list-categories

Available Categories

  • clubs - Nightclub events
  • gigs - Live music gigs
  • festivals - Music festivals
  • whats-on - All events
  • comedy - Comedy shows
  • theatre - Theatre performances

Output Format

CSV Fields

Field Description Example
event_id Unique event identifier 41495100
event_title Event name Hannah Laing presents doof Liverpool
date Event date Saturday 24th January
time Event time 4:00pm - 11:00pm
venue Venue name Exhibition Centre Liverpool
city City/location Liverpool
age_restriction Minimum age 18+
event_url Direct link to event https://www.skiddle.com/whats-on/...
image_url Event image URL https://skiddle.imgix.net/...
category Event category clubs
scraped_at Timestamp of scraping 2026-01-02T10:30:00Z

Sample Output

event_id,event_title,date,time,venue,city,age_restriction,event_url,image_url,category,scraped_at
41495100,Hannah Laing presents doof Liverpool,Saturday 24th January,4:00pm - 11:00pm,Exhibition Centre Liverpool,Liverpool,18+,https://www.skiddle.com/whats-on/Liverpool/Exhibition-Centre-Liverpool/Hannah-Laing-presents-doof-Liverpool/41495100/,https://skiddle.imgix.net/...,clubs,2026-01-02T10:30:00Z

Project Structure

SkiddleScraper/
├── config.py          # Configuration settings
├── models.py          # Event and EventCollection 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

How It Works

This scraper uses category pages as a form of pagination. Each category page (like Clubs, Gigs, Festivals) contains a different set of events. By scraping multiple categories, you can collect comprehensive event data across different event types.

The site uses React with Material-UI components and renders content via JavaScript. ScrapingAnt's browser rendering capability ensures complete page loading before extraction.

License

MIT License

Disclaimer

This scraper is for educational purposes only. Please respect Skiddle.com's terms of service and rate limits when using this tool. Always ensure your scraping activities comply with applicable laws and website policies.

About

A Python scraper for extracting event listings from Skiddle.com using ScrapingAnt API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages