Proč scrapery reznou: build vs. buy, když scrapujete stovky e-shopů
Scraper, který funguje, je skript. Scraper, který funguje dál, napříč stovkami e-shopů, každý den, je provozní problém. V mezeře mezi těmi dvěma větami umírá většina datových projektů.
Scrapnout jeden e-shop jednou je opravdu snadné a nebudeme předstírat opak. Jedno odpoledne, sto řádků Pythonu, hotovo. Potíž je, že data z jednoho e-shopu jednou ve skutečnosti nikdo nechce. Cenová analytika, analýzy trhu, feedy pro AI agenta: každé reálné použití znamená hodně e-shopů, obnovovaných podle plánu, donekonečna. A v okamžiku, kdy na tohle kývnete, přestáváte psát scraper a začínáte provozovat flotilu.
Ve zkratce: scrapnout jeden e-shop jednou je snadné; udržet stovky e-shopů každý den správně je provozní práce. Při 99% denní spolehlivosti na e-shop znamená 300 e-shopů zhruba tři selhání každý den. V našem monitoringu 950 e-shopů došlo během pěti dnů u 92 z nich aspoň k jedné změně, která poškodila data, a ta nejdražší selhání nevyhodí žádnou chybu. Pro hrstku stabilních webů si scraper postavte sami; když flotila roste, vyplatí se služba.
Přehrajte si to
Tady je pipeline s 30 e-shopy v mírném tempu. Každý typ výpadku níže pochází z našeho produkčního monitoringu a konkrétní případy jsou skutečné, anonymizované incidenty. Vaše práce je jednoduchá: klikat dál, opravovat dál.
Všechno funguje. Cron job běží v 06:00. Káva chutná skvěle.
Proč se to nikdy nepřestane rozbíjet
Nic z tohohle není exotika. E-shopy se vám scraper rozbít nesnaží; prostě jen žijí:
- Změny markupu. Redesigny, A/B testy, nové slevové štítky, CSS třída přejmenovaná po upgradu frameworku. Vaše selektory byly napsané pro stránku, která už neexistuje.
- Vykreslování se stěhuje do prohlížeče. Cena, která dřív seděla v HTML, teď přijíždí JavaScriptem. Obyčejný HTTP scraping potichu nevrací nic; nově udržujete farmu prohlížečů.
- Sílící anti-bot ochrany. Rate limity, fingerprinting, challenge stránky, reputace IP adres. V naší produkční flotile 2 024 e-shopů nejde každý čtvrtý scrapovat obyčejnými HTTP requesty: 13 % potřebuje skutečný prohlížeč a dalších 12 % rezidenční proxy nebo práci navíc, aby stránka zůstala stabilní. Při denním crawlování je to ještě těžší.
- Sémantické změny. Stránka se pořád renderuje, scraper pořád vrací čísla, a ta čísla jsou špatně: standardní a zlevněná cena si vymění místa, objeví se kupónové ceny, cena varianty přistane u špatného produktu. Žádná výjimka nevyskočí.
Nejdražší jsou ty tiché. Pádu si všimnete ještě to ráno. Špatná cena doteče do vašeho nástroje na přeceňování, do reportu o trhu nebo do odpovědi vašeho agenta, a dozvíte se to od naštvaného zákazníka o týdny později. V našem pětidenním produkčním vzorku byla nejčastěji rozbitá přesně ta pole, na kterých závisí peníze: standardní cena, zlevněná cena, kupónová cena, dostupnost.
Matematika je proti vám
Řekněme, že scrape jednoho e-shopu je v libovolný den z 99 % spolehlivý, což je velkorysé. Jeden e-shop se rozbije zhruba jednou za kvartál: otravné, zvládnutelné. Teď provozujte 300 e-shopů denně při stejné spolehlivosti. To jsou tři očekávaná selhání každý jednotlivý den, navždy. Nebude týden, kdy by fungovalo všechno. Spolehlivost na e-shop se na flotilu nepřenáší; flotila dědí selhání každého člena, každý den.
Naše vlastní čísla, z monitorovací vrstvy, která hlídá kvalitu dat napříč 950 nepřetržitě scrapovanými e-shopy: v jednom pětidenním okně došlo u 92 e-shopů aspoň k jedné změně, která poškodila data, celkem 186 incidentů. Zhruba polovinu opravila samoopravná vrstva automaticky, aniž by se na ně člověk podíval. Pro srovnání: z více než 600 000 scrapovacích běhů skončí pádem jen asi 0,1 %. Práce nevězí v pádech. Práce vězí ve všem, co nespadne.
Co obnáší provozovat scraping pořádně
Tohle je ledovec pod větou „my si to prostě scrapneme sami“:
- Správa proxy: rezidenční pooly, rotace, routování podle e-shopu, hygiena reputace. Položka v rozpočtu a poloviční úvazek.
- Renderování v prohlížeči ve velkém: headless flotily pro e-shopy, které je potřebují, s vlastními memory leaky, timeouty a věčnou obměnou verzí.
- Validace dat: něco musí každý den kontrolovat, že čísla nejsou jen přítomná, ale i uvěřitelná, jinak vám tiché chyby napochodují přímo do databáze.
- Samooprava (self-healing): když se markup změní, někdo nebo něco se musí stránku naučit znovu. Dělat to ručně napříč stovkami e-shopů je role na plný úvazek; náš engine uloží nové extrakční pravidlo automaticky u zhruba poloviny všech incidentů.
- Monitoring a alerting: zdraví každého e-shopu, po polích, s historií, jinak se o výpadcích dozvídáte od svých zákazníků.
Build vs. buy: kdy se vyplatí vlastní scraper
Upřímně: někdy ano. Pokud potřebujete hrstku stabilních webů, scrapovaných občas, a máte po ruce vývojáře, který bere údržbu jako přijatelnou režii, postavte si to sami a dodavatele vynechte. Totéž platí pro jednorázové výzkumné stahování a pro učební projekty, které jsou opravdu skvělý způsob, jak tenhle problém pochopit. Počty se obrátí, když flotila přeroste to, co jeden člověk zvládne záplatovat v pátek odpoledne, když data krmí něco, co při chybě stojí peníze, nebo když „většinou čerstvá“ přestane stačit.
Otázka build vs. buy, řečeno přesně: ne „umíte napsat scraper?“ (umíte), ale „chcete platit tým, jehož jedinou prací je udržovat cizí weby čitelné?“ Přesně tohle je náš produkt, DeepScout (deepscout.ai): česká služba, která za vás provozuje scraping e-shopů. Už dnes zpracovává přes 1 900 e-shopů a 166 milionů produktů, dostupný jako API a MCP server pro Claude a další AI agenty, včetně samoopravné, validační a párovací vrstvy. Platíte podle využití, od 0,40 € za 1 000 produktů.
Čtěte dál: Párování produktů s konkurencí bez EAN: proč je to nejtěžší část. Když data tečou, dalším problémem je poznat, které nabídky napříč e-shopy jsou stejný produkt.
Začněte s API
Scrapněte jakýkoli e-shop do čistého produktového JSON a pak ho spárujte s e-shopy, které si vyberete. Bez EAN i čárových kódů. Platíte podle využití, od 0,40 € za 1 000 produktů.