Hlavní navigace

Jan Čurn (Apify): Z webu stahujeme už miliardu stránek měsíčně

Karel Wolf

Jak se dá na sběru dat z webu postavit byznys s obratem 1,5 milionu dolarů ročně, jak vypadá legální IP botnet a co je v oblasti data scrapingu ještě etické? Mluvili jsme s ředitelem českého startupu Apify.

Doba čtení: 10 minut

Sdílet

Apify je mladá česká společnost, která založila svůj byznys na tom, že poskytuje platformu pro stahování a strukturování webových dat. Její obrat za loňský rok dosáhl 1,5 milionu amerických dolarů, tvoří ji tým 30 lidí s tím, že 25 z nich jsou programátoři, a stabilně ji využívá více než 300 zákazníků z celého světa.

Ačkoli se loni firmě nadprůměrně dařilo, plánuje také letos od rizikových investorů získat kapitál na další škálování byznysu v hodnotě vyšších jednotek milionů dolarů.

Jak vás vlastně napadlo postavit si byznys čistě na sběru dat z webu?

Nápad vznikl před lety ještě na Matfyzu, kdy jsme v rámci úplně jiného (AI/ML) projektu zjistili, jak obtížně čitelná data z webu pro stroje jsou. Jednalo se o projekt automatizovaného stahování dat o ojetých automobilech. Na něm jsme si uvědomili, že kvalita automatizovaného stahování je často tak nízká, že by stálo za to vyvinout projekt, který zvolí přesně opačný postup, kde nutnost manuálního nastavování není bug, ale zásadní výhoda.

Dnes již můžeme sebevědomě tvrdit, že pracujeme na tom, abychom otevřeli data z webu světu. Na jedné straně tu je totiž neoddiskutovatelný fakt, že většina informací je na webu ve strojově velmi obtížně čitelné podobě. Na té druhé jsme ale přesvědčení, že pro práci s těmito daty je často lidského času škoda. Pokud musíte nebo chcete pracovat s webovými daty v nějakém větším množství, tak jejich sběr a strukturování je v podstatě jen otročina, kterou za vás mohou lépe udělat roboti a vy můžete ušetřený čas a kreativní potenciál využít k něčemu užitečnějšímu. 

Zcela konkrétně to vypadá tak, že máme vlastní platformu pro web scraping a webovou automatiku, kde si můžete zautomatizovat prakticky libovolný myslitelný proces, který můžete manuálně provádět ve webovém prohlížeči (stahování a následné strukturování dat, prohlížení katalogů s produkty, automatizace formulářů, nahrávání souborů, faktur). Samotná platforma je velice obecná a lze na ní pustit prakticky cokoli – od extrakce dat přes rozesílání e-mailů až po datové transformace. Data se stahují již ve strukturované formě (typicky formou tabulky), na základě kategorizace, kterou si zákazník na začátku zadá.

Obrovská výhoda spočívá v tom, že když máte data ze stránek rozdělená na konkrétní atributy, tak s nimi můžete už velice jednoduše dále pracovat. Můžete nad nimi snadno provádět další analýzy, můžete třeba sledovat konkurenci, ceny a skladbu produktů e-shopů atd. Těch scénářů je takřka neomezené množství a záleží jen na vaší fantasii, k čemu je využijete. 

Kdo takové služby na vaší platformě reálně využívá?

To je obrovská nesourodá škála subjektů z celého světa. Využívají nás garážové startupy, státní správa i obrovské korporace. Co se týče samotných use casů, ty sahají od kontrolování soudních spisů v Argentině přes sledování a srovnávání nabídky ojetých aut v Evropě či nabídek nemovitostí až po sledování e-shopů v Česku.

Znovu opakuji, že nejde o vyčerpávající výčet, samotné nás občas překvapí, když za námi přijde zákazník s nějakou ideou, která nás dosud v kontextu data scrapingu ještě nenapadla. Využívá nás například americká neziskovka Thorn, která agreguje data z různých hambatých serverů a erotických služeb a pomáhá díky tomu hledat ztracené děti a odhalovat sexuální zneužívání mladistvých.

Co tvoří ty nejčastěji se opakující scénáře?

Nejběžnější způsob využívání platformy Apify je stahování produktů a nabídek z e-shopů, tedy klasická e-commerce, populární je také třeba agregace nabídek nemovitostí nebo sledování konkurence. Využívají nás ale také třeba banky a vydavatelé platebních karet v rámci compliance. Často potřebují mít pro regulátory důkaz, že jejich produktové stránky v tom a tom čase vypadaly tak a tak a vyhovovaly zákonným požadavkům. Podobně nás využívají také zákaznici, kteří potřebují kontrolovat, že se správně (v daném čase a na daném místě) zobrazují internetové reklamy. 

Využívá vás například nějaký srovnávač cen letenek?

Obecně pro data scraping je to jeden z populárních use casů, na který jsem trochu zapomněl. Co vím, tak máme nějaké zákazníky, kteří nás tímto způsobem využívají, ale obecně platí, že nevidíme u všech zákazníků, co na naší platformě dělají. Máme dva typy zákazníků, jedni přijdou a chtějí službu na klíč, tam máme docela dobrý přehled o tom, k čemu naši službu využívají. Ti druzí nás využívají čistě jako platformu a vše si nastavují sami, tam do jejich byznysu nevidíme.

Je ještě nějaký jiný zajímavý způsob využití, který jste nezmínil?

Zajímavým use casem, který jsem nezmínil, je ještě machine learning. Pro strojové učení potřebujete na začátku obrovské množství dat, na základě kterých se algoritmus bude moci učit. Pokud se nejmenujete Google nebo Facebook, máte na začátku docela problém se k takovým datasetům dostat, přitom se vám ale zároveň nabízejí na dosah ruky na webu. Máme více zákazníků, kteří nás využívají právě na stahování datasetů, například Google Images se dají tímto způsobem poměrně pěkně agregovat, nebo různé katalogy.

Dalším často využívaným use casem je také agregace Google search results. To se hodí například pro analýzu toho, jak se daří různým frázím ve vyhledávání. Google samotný totiž pro výsledky (záměrně) neposkytuje API, takže my tuto funkci úspěšně suplujeme.

Jak na tuto aktivitu Google reaguje? Předpokládám, že se mu automatizované dotazy asi příliš nelíbí.

Je pravda, že se to Google pokouší částečně omezovat, ale například některé e-shopy blokují snahy o data scraping daleko přísněji. Google dělá v podstatě jen to, že pokud přeženete počet dotazů z jedné IP adresy (limit je asi 300 dotazů za den), tak vám zobrazí captchu, což je snadno obejitelný problém. Možná je to i proto, že sami scrapují data z celého webu, a jiný přístup by tak byl od nich docela pokrytecký. 

Máte tedy nakoupeny desetitisíce IPv4 adres, které točíte?

Přesně tak, nakupujeme adresy, které rotujeme, a velkou část z nich přeprodáváme klientům. Využíváme dva druhy IP adres – datacentrové a rezidenční. Datacentrových adres máme řádově tisíce, jsou relativně levné a rychlé, ale dají se celkem snadno detekovat a blokovat. Alternativou je proto si pronajímat rezidenční IP adresy, kterých je prakticky neomezené množství, ovšem jsou pomalejší a dražší. Jde vlastně o takový legální botnet.

Problém datacentrových adres je ten, že se dají celkem snadno detekovat a blokovat. Alternativou je proto si pronajímat uživatelské IP adresy. Jde vlastně o takový legální botnet. Funguje to tak, že existují služby, které pronajímají uživatelské IP adresy a vy skrze nějaký proxy server následně stahujete přímo přes jejich počítače. Můžete takto získat v případě potřeb IP adresy z konkrétního města nebo státu. Adresy jsou získány zcela legálně, lidé přístup k nim nejčastěji vyměňují za „bezplatné“ VPN připojení, stažení hry zdarma nebo si za pronájem IP adresy přímo nechávají platit (jedná se o jednotky dolarů měsíčně).

Zasahuje do vašeho byznys modelu rychle rostoucí cena IPv4 adres?

Myslím, že jsou pro naše potřeby pořád ještě relativně dostupné, takže zatím ne. Oficiálně sice adresy došly, ale pořád existuje velké množství firem, které historicky vlastní obrovské bloky adres, kterých se rády za úplatu zbavují, nebo je dále pronajímají. Vznikl tak relativně soběstačný volný trh.

Když se ještě vrátím k umělé inteligenci, jak vidíte reálnou možnost využití AI a ML v data scrapingu?

V současné chvíli je strojové učení v data scrapingu efektivně využitelné jen v hodně malém procentu případů již relativně dobře strukturovaných dat. ML vám dnes může také třeba částečně pomoci nastavit robota, ale stejně to pak musí zkontrolovat živý člověk. 

Úplně se ale této myšleny nevzdáváme, máme dokonce v současnosti na Matfyzu vypsaný jeden projekt na využití AI pro automatickou extrakci dat, takže uvidíme. 

Když se na chvíli zastavím u těch nevýdělečných projektů, jak vlastně vznikl nápad udělat Hlídač shopů, vzešel od vás, nebo od TopMonks?

Úplně prapůvodně se ta idea objevila před dvěma lety na hackatonu Datafesťák v Hradci Králové. Tam se potkal můj kolega a spoluzakladatel firmy Jakub Balada a kluci z TopMonks a Kebooly a vymysleli, že by se mohl udělat podobný projekt coby rozšíření do prohlížeče. Ideální bylo, že každý z nás mohl do projektu přinést svoji přidanou hodnotu, my jsme uměli data sbírat, TopMonks mají zase bohatou zkušenost s tvorbou rozšíření a Keboola pro změnu umí dobře s daty pracovat.

Projekt jsme nicméně nevymysleli úplně na zelené louce, již před tím jsme poskytovali report s analýzou dat z Black Friday, která celý ten nápad v podobě rozšíření do prohlížeče odstartovala. S tím, jak projekt získával na popularitě, tak jsme se mu začali věnovat trochu víc, vznikla webová stránka, postupně se rozšiřuje počet e-shopů a tak dále. Dnes je to taková naše srdeční záležitost.

Nejde ale o jediný váš neziskový projekt, můžete je přiblížit všechny?

Další dlouhodobá záležitost je spolupráce s Michalem Bláhou na Hlídači státu, pro kterého scrapujeme například data z Facebooku s komentáři politiků pro pozdější analýzu sentimentu. Pro Hlídač státu také již nějakou dobu stahujeme dokumenty z webů zastupitelstev, která svoje data neposkytují formou API. 

S tím, jak získával Hlídač shopů na popularitě, tak ti největší e-commerce hráči rezignovali a namísto házení klacků pod nohy vám začali sami data posílat. Ne všude ale byl přístup takto vstřícný, co vím, tak padla i nějaká předžalobní výzva, můžete k tomu říci něco víc?

Nerad bych to rozmazával, ale jeden e-shop to hodně těžce nesl a my jsme to vyřešili tím, že jsme ta data přestali stahovat. Nicméně byl z těch velkých s obratem nad miliardu jediný, ostatní to berou o poznání sportovněji a sami nám ta data posílají, právě proto, abychom se vyhnuli nepřesnostem při stahování.

Můžete být trochu konkrétnější, jednalo se o Notino?

Nechci komentovat, ale můžete se podívat, který z těch velkých e-shopů tam chybí, a bude to hned jasné. Každopádně jde o neziskový projekt a těžko nás lze nařknout z nějaké zlé vůle nebo že upozorňujeme na podvádění jiných, abychom se na tom sami obohatili.

To ne, ale určitě lze napadnout, pokud jsou stažená data nepřesná.

To je věc, která se může stát (pokud se například špatně namapuje název produktu), ale pokud k tomu došlo, tak nás to vždy velmi mrzelo a velice promptně jsme to řešili.

Jak moc se vlastně dnes firmy brání scrapingu jejich dat z webu?

Děje se to, ale předžalobní výzva je už trochu extrém, většinou k tomu používají technické prostředky jako blokování IP adres s příliš mnoho dotazy, captchy nebo browser fingerprinting (aby šlo rozpoznat uživatele s prohlížečem od robota). Obecně je ale například v USA trend na web scraping spíše rezignovat a brát ho jako normální součást života na webu. Americké soudy dokonce loni přikázaly LinkedInu, aby umožnil firmě hiQ Labs provádět data scraping, protože uživatelé sítě jejich data poskytli ve víře, že budou veřejná.

Existuje nějaká část web scrapingu, kterou považujte již za hranou, například sběr e-mailových adres?  

Máme v podmínkách služby, že ji není možné používat k žádným nelegálním aktivitám, jinak je to ale na každém, k čemu službu využije. Jednou z věcí, která je pro nás již za hranou, je také vytváření falešných účtů na různé služby jenom proto, abychom získali přístup k jejich datům. To, co je ale veřejně na webu, je podle nás možné bez omezení stahovat.

Na závěr ještě nějaká čísla, kolik stránek a kolik dat měsíčně z webu stáhnete?

Náš objem stažených a přenesených dat dělá za rok 2019 asi 3,3 petabytů (přesněji 3315 TB), stránek jsme stáhli odhadem 11 miliard, ale číslo rychle roste, aktuálně stahujeme asi 1 miliardu stránek měsíčně (jedná se o stovky TB).

Pracujete nějak s optimalizací tohoto objemu?

Pracujeme, a to na mnoha úrovních, ale to by bylo na samostatný rozhovor. Celý náš systém běží nad Amazon Web Services, který s velkými datovými objemy nemá technický problém, ale zároveň si je umí i pěkně nacenit, takže neustále optimalizujeme a platba za data transfer je jeden z našich největších infrastrukturních nákladů. AWS využíváme proto, že velká část našich zákazníků je z USA a obecně potřebujeme mít výbornou konektivitu ze všech částí světa.

MIF20 tip obecny

Přemýšleli jste někdy o přechodu na Google Cloud?

Ano, ale právě ten náš obrovský objem dat nás trochu zamyká u současného dodavatele. Pokud by k tomu někdy došlo, museli bychom každopádně zmigrovat všechna data najednou, jinak bychom se nedoplatili.