Co to je
Web scraping (česky též scrapování nebo „vytěžování“ webu) je automatické stahování údajů z webových stránek do uspořádané podoby, třeba do tabulky nebo databáze. Program zvaný scraper stránku načte podobně jako prohlížeč, najde v ní požadované údaje, například název, cenu nebo dostupnost, a uloží je. Totéž by člověk dělal ruční kopií, program to zvládne rychleji a opakovaně.
Používá se hlavně tam, kde zdroj nenabízí oficiální rozhraní (API), přes které by data předával sám. Od crawlingu, tedy procházení webu například vyhledávačem, se liší cílem: nejde o nalezení stránek, ale o získání údajů z nich.
Proč na tom záleží
Scraping se využívá ke sledování nabídek a cen v oboru, ke sběru veřejných údajů pro analýzy nebo ke kontrole vlastního webu.
Je třeba postupovat obezřetně. Web může mít podmínky užití nebo pokyny pro roboty, které automatické stahování omezují, obsah může být chráněn autorským právem a intenzivní stahování může cizí server zatížit. Údaje o konkrétních lidech podléhají ochraně osobních údajů, i když jsou veřejně dostupné. Právní posouzení závisí na okolnostech a tento text není právní rada; v pochybnostech se obraťte na právníka.
Modelový příklad
Prodejce elektroniky chce sledovat, jak se v čase mění cena a dostupnost několika vybraných produktů na veřejných stránkách jiných obchodů. Skript jednou denně načte tyto stránky a uloží údaje do tabulky. Prodejce si předem přečte podmínky zdrojových webů, nenačítá stránky zbytečně často a nestahuje žádné osobní údaje.
Co byste měli vědět
- Nejdřív zjistěte, zda zdroj nenabízí oficiální rozhraní (API) nebo export dat. Je to spolehlivější než čtení stránek.
- Přečtěte si podmínky užití webu a soubor robots.txt, ve kterém provozovatel uvádí, co mají automatické programy vynechat.
- Dotazy posílejte v rozumných odstupech, aby cizí web nebyl zbytečně zatěžován.
- Nestahujte osobní údaje bez oprávněného důvodu. Pro nakládání s nimi platí GDPR.
- Počítejte s tím, že změna struktury stránky může program rozbít, a stažená data pravidelně porovnávejte se zdrojem.