Part 1Marc de Batlle
0%
Part 1Marc de Batlle
All work10 / 11
Eleven

VLR.gg ScraperMap-level esports data, on tap.

10
Period2025 · Jul
RoleSolo build
StatusOpen source
Chapter concepts
  1. 1Role: Solo build.
  2. 2Status: Open source.
  3. 3Stack: Python, requests, BeautifulSoup, pandas, OpenPyXL.
  4. 4Key figure: CSV · XLSX clean exports.

The data engine behind the predictor: a polite scraper that turns VLR.gg matches into tidy, map-level datasets.

Why

A model is only as good as its data. Before the predictor could exist, I needed clean, map-level results, not just who won a series, but every map, score and team. So I built the scraper first.

CLI
$ python scrape.py
? Event URL ▸ vlr.gg/event/2097/…
→ parsing 18 matches
→ 41 maps extracted
✓ wrote results.csv (41 rows)
✓ wrote results.xlsx (+ summary sheet)
Exhibit 11-3
Each row = one map
FieldExample
TournamentChampions Tour
Match typeBo3, Playoffs
TeamsTeam A vs Team B
MapAscent
Score13 to 9
WinnerTeam A
Built to be robust
  1. 1Flexible input: event URL or match list
  2. 2Polite: 2s rate limiting
  3. 3Fallback parsing: survives layout changes
  4. 4Dual export: CSV + Excel
  5. 5Summary sheet: maps played / won / win%
Stackrequests · BeautifulSoup · pandas
OutputCSV + Excel
Manners2s delay · fallback parsing
Continue
Previous chapterValorant Match Predictor
Next chapterTrip-Setter