Flashscore API Scraper
Tento projekt je modifikovaný fork původního scraperu FlashscoreScraping. Původní logika byla přepracována z lokálního skriptu generujícího soubory na samostatnou mikroslužbu poskytující data prostřednictvím JSON rozhraní.
Klíčové změny a vylepšení
- Transformace na API: Server využívá nativní Node.js `http` modul pro poskytování dat přes endpoint `/api/scrape`.
- Optimalizace výkonu: Původní implementace vyžadovala lineární počet požadavků v závislosti na počtu zápasů. Tato verze byla optimalizována na pevně konstantní počet paralelních požadavků (Paralelní sběr dat z indexů "results" a "fixtures"), což masivně snižuje čas celkové exekuce.
Technická specifikace API
Endpoint: `GET /api/scrape`
Služba očekává tři povinné query parametry pro sestavení validní adresy.
Parametry:
- `sport`: Typ sportu (např. `hockey`)
- `country`: Země (např. `world`)
- `league`: Název ligy (např. `world-championship`)
Příklad volání pro zpracování MS v hokeji: ```bash GET /api/scrape?sport=hockey&country=world&league=world-championship ```
Tato služba byla vytvořena pro účely mého projektu expertov. Aplikace potřebovala získávat data o zápasech nějakým způsobem a jelikož neexistuje žádné veřejné zdarma API pro získávání těchto dat, rozhodl jsem se radši modifikovat již existující scraper pro moje účely.
Zejména jsem optimalizoval výkon tím, že nepotřebuji detailní informace o každém zápase, ale pouze základní informace o zápasech, které jsou dostupné na stránce s přehledem zápasů. Tím pádem dokážu získat data o všech zápasech v lize. Mohu tedy scapnout pouze ze dvou stránek, namísto desítek stránek s detailními informacemi o každém zápase zvlášť.
Zmenšil jsem počet scrapů z lineárního počtu zápasů na konstantní počet dvou scrapů, bez ohledu na počet zápasů v lize.