Scrapování v roce 2026: praktický průvodce a kde to mění AI

Data jsou v roce 2026 ještě cennější, než byla před deseti lety. AI modely je hltají na vstupu, dashboardy je potřebují na výstupu a mezi tím sedí tichá disciplína, kterou kdekdo přehlíží — web scraping.
Tenhle článek je o tom, co scraping vlastně je, k čemu se hodí, jaký stack dnes dává smysl, jak řešit anti-bot ochranu a kde se to celé v poslední době proměňuje díky LLM. Bez konkrétních projektů, čistě praktický průvodce. Pokud chceš začít nebo si ujasnit, kam se to posunulo, jsi tu správně.
Crawler vs. scraper — co je co
Pojmy se často zaměňují, ale jsou to dvě různé věci:
- Crawler prochází web tak, že sleduje odkazy. Mapuje strukturu. Klasickým příkladem je Googlebot, který objevuje stránky napříč internetem, nebo archive.org, který ukládá kopie pro budoucnost.
- Scraper otevře konkrétní stránku a vytáhne z ní data. Cenu produktu, obsah článku, seznam recenzí, parametry zboží.
V praxi se to skoro vždy kombinuje. Nejdřív crawler najde, kde co je, pak scraper vyzobne to, co potřebuješ. Když lidi řeknou "napsal jsem scraper," obvykle myslí oboje.
K čemu se to dá využít
Use casy, které dávají smysl už dnes:
- Sledování cen a inventory — konkurence sníží cenu, dozvíš se to za 5 minut, ne za týden.
- Agregace zpráv a obsahu — RSS na steroidech, kde si sám definuješ zdroje a co tě zajímá.
- Výzkum trhu a konkurence — kdo co prodává, jak píše marketing, jaké recenze sbírá.
- Datasety pro ML / fine-tuning — vlastní trénovací data, vlastní embeddingy, vlastní hodnocení.
- Monitoring změn — změna ceny, změna textu na stránce, nový blogpost u sledovaného autora → alert na Telegram.
- Migrace obsahu — starý web bez API, nový web bez ručního copy-paste 5000 článků.
Společný jmenovatel: automatizace toho, co byste jinak dělali ručně. A tam, kde to dělá ručně někdo jiný, máš výhodu.
Stack v roce 2026 — co používat na co
Nejde o "nejlepší" knihovnu, ale o správnou volbu pro situaci. Tady je, jak to vidím:
requests + BeautifulSoup — pořád zlatý standard pro statické HTML. Nejlevnější, nejrychlejší, nejjednodušší. Když ti stačí stáhnout HTML a parsovat ho, není důvod používat nic dalšího. Server-rendered weby (Wikipedia, většina e-shopů, blogy) padají do téhle kategorie.
Playwright nebo Puppeteer — pro JS-heavy weby. SPA, React aplikace, nekonečné scrollování, stránky které načítají obsah dynamicky. Spustí skutečný browser (headless), počká na render, vytáhneš co potřebuješ. Pomalejší a paměťově náročnější, ale občas nezbytné. V roce 2026 jednoznačně Playwright — má lepší API, lepší debug a aktivnější ekosystém než Puppeteer.
Scrapy — pro velké projekty a distribuované crawlování. Když potřebuješ procházet tisíce stránek, mít solid retry logic, pipelines pro postprocessing a deployovat to na cluster. Pro jednorázový skript je to overkill. Pro produkční crawler je to pořád nejvyzrálejší volba.
Hosted služby — Browserless, Apify, Bright Data, ScrapingBee — když nechceš nic provozovat. Posíláš HTTP request na jejich API, oni udělají scraping a vrátí ti výsledek. Drahé, ale zachrání ti to anti-bot souboj a infra. Pro začátek nebo pro use casy, kde výsledek potřebuješ rychle, dobrá volba.
Praktická heuristika: začni s requests + BS4. Pokud nestačí, zkus Playwright. Když Playwright nestačí na měřítko, přesuň se na Scrapy. Hosted služba je únikovka, ne výchozí volba.
Anti-bot a jak to obejít (legálně)
Většina rozumných webů ti scrapování neusnadňuje — a to z dobrých důvodů. Jak to v roce 2026 řešit:
Rotace User-Agent + realistické headers. Každý request s User-Agent: python-requests/2.31 je rovnou prozrazení. Posílej kompletní headery jako reálný prohlížeč: Accept, Accept-Language, Accept-Encoding, Sec-Ch-Ua, Referer. Existují knihovny (fake-useragent, curl_cffi), které to dělají za tebe včetně mimikování TLS fingerprintu.
Proxy. Když děláš tisíce requestů, jedna IP tě prozradí okamžitě. Datacenter proxy jsou levné, ale velké weby je rozpoznají. Residential proxy vypadají jako reálný uživatel z domácí sítě — jsou dražší, ale prochází přes Cloudflare a podobné. Mobile proxy jsou nejdražší a nejodolnější, ale málokdy je potřebuješ.
Headless detekce. Cloudflare, PerimeterX, DataDome detekují headless browser podle stovky drobností (vlastnosti navigator, render funky webGL, timing). Řešení: stealth pluginy (playwright-stealth, puppeteer-extra-plugin-stealth) nebo přepnout na Browser Use / běžící skutečný browser. Nikdy ne 100% spolehlivé, je to závody ve zbrojení.
Rate limiting a polite scraping. Tohle není jen o tom "nedostat ban." Je to i etika. Posílej si maximálně 1–2 requesty za sekundu na jednu doménu. Používej exponential backoff při chybách (429, 503). Cachuj odpovědi, ať neděláš stejný request dvakrát. Tvůj User-Agent může obsahovat kontaktní e-mail (MyScraper/1.0 (contact: pavel@example.com)) — adminové oceňují, když ví, kdo je a proč.
Provoz: ne jen "stáhnout HTML"
Tohle je sekce, kterou většina návodů přeskakuje. Skript, co stáhne HTML, není scraper. Scraper je systém.
Plánování. Cron, scheduler, workflow runner. Kdy běžíš? Jak často? Co když poslední běh ještě neskončil? Pro start stačí cron. Pro něco složitějšího Airflow, Prefect nebo prostý kód s APScheduler.
Retry policy. Síť spadne, server vrátí 503, proxy timeoutuje. Bez retry logic se tvůj scraper zlomí o první chybu. Exponential backoff + maximálně N pokusů + dead letter queue pro requesty, co po N pokusech selhaly.
Monitoring chyb. Tichý scraper je špatný scraper. Selhání má jet jako alert — Telegram, Slack, e-mail. Když ti scraper přestane sbírat data a ty se to dozvíš za týden, máš týden díry v datech a nikoho to nezajímá.
Storage. Zpočátku CSV. Když dat přibyde, SQLite nebo Postgres. Když přibyde víc dat, objektové úložiště (S3, R2) pro raw HTML + DB pro extrahované záznamy. Vyplatí se ukládat i raw HTML — když přepíšeš parser, můžeš znovu projet stará data bez opakovaného scrapování.
Idempotence a deduplikace. Stejný produkt se v inventory objeví víckrát. Stejný článek může mít víc URL. Deduplikuj na úrovni dat, ne URL. Kanonický identifikátor (slug, EAN, hash obsahu) tě zachrání.
Právní a etická stránka
Krátká, ale podstatná sekce. Scrapování není čistě technická disciplína.
robots.txt je request, ne právní zákaz. Říká, co web preferuje. Ignorovat ho není zločin, ale může být důkaz v civilním sporu, že jsi věděl, co web nechce. Respektuj ho jako default. Když ho ignoruješ, měj k tomu důvod.
ToS stránek. Některé weby explicitně zakazují automatický přístup. To je smluvní vztah a může být právně závazné — záleží na jurisdikci a konkrétních podmínkách. U US webů byl roky precedent hiQ vs. LinkedIn, kde soud rozhodl, že scrapování veřejně dostupných dat není trestný čin podle CFAA. To ale neznamená, že to není porušení ToS. Pro firemní použití konzultuj s právníkem.
GDPR a osobní údaje. Pokud scrapuješ jména, e-maily, fotky lidí — jsi zpracovatel osobních údajů. To má důsledky: legitimní účel, retence, právo být zapomenut. Veřejné data nejsou automaticky volné data.
Copyright. Texty článků, obrázky, databáze mají autora. Scrapování pro vlastní analýzu je jiná věc než scrapování a republikování. Když chceš text reprodukovat, řeš licenci.
Praktické pravidlo, které nikdy nezklamalo: scrapuj tak, jak by sis přál, aby někdo scrapoval tebe.
A teď to mění AI
Tady přichází zajímavá část. LLM (Claude, GPT-4, Gemini) v posledních dvou letech proměnily, co scraping vůbec je. Čtyři velké posuny:
1) Extrakce přes LLM místo CSS selektorů
Klasický scraping: prohlédneš si DOM, najdeš .product-card .price, napíšeš selektor, parsuješ. Funguje skvěle — dokud ti web nepřeskupí HTML. Pak ti to padá a hledáš nový selektor.
LLM-driven extraction: pošleš surové HTML (nebo jeho zjednodušenou verzi) modelu a řekneš: "Vytáhni mi seznam produktů s názvem, cenou, dostupností. Vrať JSON." Model dostane HTML, vrátí strukturovaná data.
Plusy: robustní vůči změnám layoutu. Když web přeskupí HTML, tvůj scraper pořád funguje. Žádné if div.class == "product-2024-v3".
Minusy: dražší (platíš za tokeny), pomalejší (sekundy místo milisekund), občas halucinuje (model vymyslí cenu, která tam není).
Hybridní přístup, který používám: CSS selektory jako fast path, LLM jako fallback. Když selektor selže, pošli HTML do Claude. Tím dostáváš odolnost bez plné ceny LLM scrapingu.
2) AI-native scraping toolkity
Vznikla nová generace nástrojů, kde píšeš úkoly přirozeným jazykem, ne v selektorech:
- Browser Use — open source agent ovládající browser. Místo "klikni na
.btn-submit" píšeš "klikni na tlačítko Přihlásit." - Stagehand — knihovna od Browserbase, která kombinuje Playwright s LLM API.
- Firecrawl — hosted služba, která ti vrátí Markdown z jakékoli stránky, optimalizovaný pro LLM.
- ScrapeGraphAI — Python knihovna pro scraping s LLM, definuješ schema, ono extrahuje.
Pro průzkumné scrapování, prototypy, jednorázové extrakce — rychlejší než tradiční přístup. Pro produkční systém s tisíci requestů za hodinu pořád platí, že CSS selektory jsou levnější.
3) MCP servery jako alternativa scrapingu
MCP (Model Context Protocol) se v roce 2026 etabloval jako standard pro to, jak LLM komunikují s nástroji a daty. Pokud poskytovatel dat má MCP server, scrapování nepotřebuješ — model si data vyžádá přes oficiální rozhraní.
Pro vývojářský scope: pokud existuje MCP server (nebo aspoň REST API), začni tím. Scrapování má smysl, když API neexistuje nebo je výrazně omezené.
4) Defenziva: AI Audit, paywally a etika trénovacích dat
Druhá strana mince. AI scraperi (zejména pro training data) způsobili, že weby začaly aktivně blokovat AI agenty.
- Cloudflare AI Audit ukazuje webům, kteří AI agenti je crawlují, a umožňuje "pay per crawl" — model platí za přístup.
- Velká média (NYT, Washington Post) blokují OpenAI/Anthropic crawlery a žalují za historický scraping.
- Blogeři a tvůrci obsahu přidávají
noaidirektivy, paywally pro AI agenty, robots.txt explicitní pravidla.
Co to znamená pro tebe? Scrapování pro trénink AI se právně i eticky komplikuje. Scrapování pro vlastní použití zůstává v zásadě stejné, ale i tady přibývají detekční vrstvy. Polite scraping je teď víc než kdy jindy o reputaci.
Závěr — co si vzít domů
Pět věcí, které bych přál svému já o pět let zpět:
- Začni s nejjednodušším stackem —
requests+ BeautifulSoup pro 80 % případů. Sahej po Playwrightu, jen když musíš. - Storage > parser — ulož raw HTML, parsuj později. Ušetří ti to budoucí přepisy.
- Polite je default — rate limit, kontaktní
User-Agent,robots.txt. Reputace je kapitál. - LLM jako fallback, ne hlavní zbraň — selektory jsou levné a rychlé. LLM je drahé a magické. Kombinuj.
- Monitoring od první verze — tichý scraper je rozbitý scraper. Alert na Telegram nebo Slack zachrání data.
Scrapování v roce 2026 není mrtvé. Naopak. Je jen chytřejší, etičtější a víc kombinované s AI. Stejné principy (jdi pomalu, respektuj cizí infrastrukturu, ulož raw data), nové nástroje (Playwright, LLM extrakce, MCP).
A pro nás, kteří kolem toho stavíme projekty, je to skvělá doba.