A Python scraper for extracting event listings from AXS.com using the ScrapingAnt web scraping API.
- Scrapes event listings from AXS city pages
- Extracts comprehensive event details:
- Event ID
- Title
- Venue name
- City, State, Country
- Date and time
- Availability status (Available, Cancelled, Sold Out, etc.)
- Event URL
- Exports data to CSV and JSON formats
- Handles JavaScript-rendered content via ScrapingAnt
- Deduplicates events 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/axs-scraper.git
cd axs-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 events from Los Angeles (default city):
python main.pypython main.py [OPTIONS]
Options:
--city-id TEXT City ID to scrape (default: 5368361 - Los Angeles)
--city-slug TEXT City slug (default: los-angeles-ca)
--pages INTEGER Number of pages to scrape (default: 1)
-o, --output PATH Output CSV file path (default: output/axs_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)Scrape with verbose output:
python main.py --verboseScrape multiple pages:
python main.py --pages 3Export to both CSV and JSON:
python main.py --json -o output/events.csvScrape a different city (e.g., New York):
python main.py --city-id 5128581 --city-slug new-york-ny| Field | Description | Example |
|---|---|---|
| event_id | Unique AXS event ID | 1234567 |
| title | Event title | Countdown NYE (18+ Event) |
| venue | Venue name | Los Angeles Convention Center |
| city | City name | Los Angeles |
| state | State/region | CA |
| country | Country | United States |
| date | Event date | Dec 31, 2025 |
| time | Event time | 7:00 PM |
| status | Availability status | Available |
| url | Full event URL | https://www.axs.com/events/1234567 |
event_id,title,venue,city,state,country,date,time,status,url
1234427,Crypto.com Arena VIP Tours,Crypto.com Arena Tours,Los Angeles,CA,United States,Dec 31, 2025,,Available,https://www.axs.com/events/1234427
1148919,Countdown NYE (18+ Event),Los Angeles Convention Center,Los Angeles,CA,United States,Dec 31, 2025,7:00 PM,Available,https://www.axs.com/events/1148919AXSScraper/
├── config.py # Configuration settings and CSS selectors
├── models.py # Event and EventCollection data classes
├── utils.py # Utility functions for parsing
├── 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
To scrape events from a different city, you need to find the city ID and slug:
- Go to axs.com/category/cities
- Click on the desired city
- The URL will contain the city ID and slug:
- URL:
https://www.axs.com/category/cities/5368361/los-angeles-ca - City ID:
5368361 - City slug:
los-angeles-ca
- URL:
- AXS uses "load more" style pagination with JavaScript. The initial page load shows 10 events by default.
- For scraping more events, consider using the AXS internal API or a headless browser approach.
- ScrapingAnt free plan is limited to 1 concurrent request.
MIT License
This scraper is for educational purposes only. Please respect AXS's terms of service and rate limits when using this tool. Always ensure your scraping activities comply with applicable laws and website policies.