Jak nezabít projekt webového crawleru hned na začátku?

Mnozí to často zkouší s až kuriózně nízkým rozpočtem a s nedostatečnou představou o fungování webového crawleru. Pojďme shrnout na co je dobré se zaměřit při poptávce a vývoji dlouhodobě udržitelného webového crawleru …

Jak nezabít projekt webového crawleru hned na začátku?

Na co se používá webový crawler?

Pokud se podíváme do logu jakéhokoliv veřejně dostupného webového serveru, určitě zde najdeme kromě reálných uživatelských přístupů také velké množství přístupů od různých robotů, botů, spiderů, crawlerů. Za těmito přístupy stojí systémy, které slouží pro automatizované procházení webu a automatizovaný sběr dat z webu a říká se jim také "webový crawler".

Nejčastěji se webový crawler využívá pro procházení obsahu na internetu a jeho indexování pro účely fulltextového vyhledávání na webu (takový webový crawler používá také například google nebo seznam). Webový crawler lze ale také využít pro tvorbu různých databázi, sledování konkurenčních webů, různé webové analýzy nebo obecně pro jakékoliv použití, při kterém potřebujete procházet webové zdroje a získávat z nich data, které chceme dále využívat pro další potřeby.

Vývoj vlastního webového crawleru na míru

Na trhu existuje řada již hotových webových crawlerů, které lze pořídit, nainstalovat, nastavit a nechat dělat svoji práci. Bohužel takové univerzální řešení přináší řadu nevýhod a často tak může být lepším, případně jediným vhodným řešením vývoj vlastního webového crawleru na míru s určitou specifickou funkcionalitou. Aby byl ale projekt vývoje vlastního webového crawleru na míru úspěšný a hlavně dlouhodobě udržitelný, je nutné dodržet několik zásad, které je nutné si uvědomit již u poptávky takového projektu.

Milná představa o fungování

Četl jsem množství poptávek, které byly již od začátku špatně položené. Poptávající měl hotovou excelovskou tabulku s daty, které nejspíš vyexportoval ze svého informačních systému. Webový crawler si představoval jako nějaký script podobný excel makru, který se dodělá do jeho excelovského souboru. On si pak každé ráno nakopíruje do souboru aktuální export dat, uvaří kafe a klikne na tlačítko v excel souboru. Než dopije kafe webový crawler projde web a nasype data do jeho excel souboru.

Takto bohužel nebude fungovat pravidelné, dlouhodobě udržitelné, legální a etické vytěžování dat webovým crawlerem. Tento způsob vytěžování provede během krátké doby velké množství dotazů , nepřiměřeně zatíží webový zdroj a z pohledu jeho síťové infrastruktury bude často detekován jako pokus o DoS / DDoS útok a načítání bude omezováno, penalizováno, crawler se bude dostávat do blacklistů. Navíc s takovým načítáním budeme nejspíš často balancovat na hraně etiky.

Domluva s crawlovaným webem / zdrojem dat

Ještě než začnete s vývojem vlastního webového crawleru, zamyslete se jestli neexistuje možnost, jak by se dalo domluvit se zdrojem dat. Často může být levnější a efektivnější zdroji za data zaplatit a čerpat je přímo od něj, než na to vyvíjet vlastní crawler. A i v případě, že se chováte korektně (legálně, eticky a zbytečně zdroj dat nevytěžujete), vždy je lepší když bude zdroj vědět a bude souhlasit s tím, že je vytěžován.

Dlouhodobá aktualizace vs. jednorázové vytěžení

Než se pustíte do poptávky webového crawleru je dobré si pořádně uvědomit a ujasnit, jestli Vám bude stačit data jednorázově vytěžit, nebo budete potřebovat systematické pravidelné vytěžování webového zdroje nebo zdrojů. Toto často závisí přímo na tom, co chcete vytěžovat a proč a může se to zdát jako triviální otázka, ale poptávající ji velmi často nemá dobře ujasněnou (třeba pod tíhou výše rozpočtu na kvalitní dlouhodobě udržitelný webový crawler).

Chovat se eticky a šetřit prostředky zdroje

Pokud by vytěžování nějakého veřejného webového zdroje i nemělo legislativní překážky (viz další bod níže), je dobré a slušné chovat se při vytěžování eticky a ohleduplně a zbytečně chováním webového crawleru nepřetěžovat prostředky webového zdroje. Pokud se bude webový crawler chovat stejně nebo podobně jako reálný uživatel, nejspíš danému zdroji nebude vůbec vadit jeho přítomnost a nejspíš na straně webového zdroje ani nikdo nebude vědět, že je zdroj vytěžován webovým crawlerem. Pokud bude vytěžováno příliš velké množství dat, bude tak nejspíš nutné pro optimální chování webového crawleru učinit vhodné kompromisy v rychlosti načítaní dat zdroje (někdy to nemusí být možné, a je nutno hledat jiné řešení).

Legislativní hledisko vytěžování webových zdrojů

Asi nejzásadnější a zároveň nejcitlivější otázkou je legislativní hledisko budování vlastního webového crawleru a jeho použití ke sběru dat z webu. Je potřeba si uvědomit, že to, že je nějaký obsah veřejně dostupný někde na webu ještě neznamená, že ta data můžeme kopírovat, uchovávat a používat pro vlastní potřebu. U tohoto určitě narazí naprostá většina úmyslů budování vlastního webového crawleru.

Setkal jsem se dokonce i s požadavkem na crawlování informačního systému pro monitoring novinek v oblasti práva (beck-online), který logicky provozují lidé vzdělaní v oblasti práva, a který má přímo v provozních podmínkách explicitně uvedeno, že je zakázáno vytěžování jeho dat. Co dodat ...

Je dobré si uvědomit a dát si pozor zejména na tyto věci (a samozřejmě je případně zkonzultovat s erudovaným odborníkem v oblasti práva v IT):

  • Neměli bychom "krást" něco, co je jinak na prodej, nebo co je jinak poskytováno v rámci placené služby. Například katastr nemovitostí měl do nedávna online volně dostupné všechny data, ale pro případ strojového zpracování byl za potřeby placený přístup (data již nejsou volně dostupná právě z důvodu nelegálního vytěžování).
  • Neměli bychom porušovat obchodní nebo provozní podmínky zdroje. Webové zdroje a jejich používání (tedy i čtení a stahování dat) se často řídí, některým z platných zákonů a často přímo obsahují provozní nebo obchodní podmínky s odkazem na tento zákon. V takových podmínkách pak mají často přímo explicitně uvedeno, že není možné je strojově vytěžovat.
  • Neměli bychom porušovat autorské práva. Všechny vytěžované data mají svého autora a to, že je autor veřejně poskytl, ještě neznamená, že souhlasí s tím, abychom je dál využívali jakkoliv jinak, než k jakému účelu je poskytl.

Servisování, provoz a časté úpravy webového crawleru

U budování vlastního webového crawleru je obzvlášť důležité zaměřit se také na provozní část vývoje a mít zabezpečen také servis takového softwaru. U vývoje softwaru na míru a obzvlášť pak u vývoje webového crawleru je naprosto mylná představa, že se to vyvine, autor se odhodí, někam se to nasadí a pak to bude nějak samo fungovat.

Je potřeba počítat s tím, že webový crawler prochází webové zdroje třetích stran a často požadované data parsuje z frontendu těchto webových zdrojů. Je naprosto běžné a normální, že takový frontend se často mění (aktualizují se použité knihovny, mění se vzhled webových stránek, aplikace, mění se její funkce, případně URL adresy, na kterých se data nachází). Pokud se tedy rozhodnete pro vývoj vlastního webového crawleru na míru připravte se nato, že bude nutné webový crawler neustále pravidelně upravovat a přizpůsobovat měnícím se webovým zdrojům, které prochází.

Rozpočet na tvorbu webového crawleru

Nyní jsem ale nejspíš už hodně daleko od tlačítka v excelovském exportu z informačního systému, které jsem popisoval výše. Aby byl vývoj webového crawleru úspěšným a dlouhodobě udržitelným projektem, je nutné, aby byl dokonale a odborně promyšlen a realizován každý detail tohoto projektu. K tomu bude ale zapotřebí odpovídající rozpočet, který nebude malý, a to jak na samotný vývoj řešení, tak na jeho následný provoz, servis a úpravy.

Pokud potřebujete realizovat projekt vývoje vlastního webového crawleru na míru, kontaktujte mě, rád Vám s ním pomůžu. Buď Vám nabídnu profesionální řešení pro Váš webový crawler, nebo Vám vysvětlím, proč si myslím, že není dobré požadované data crawlovat z webu, jak zamýšlíte.

Pokud Vás zajímá více informací, co je to webový crawler a na co vše se ještě dá použít, pokračujte zde.

Michal Strelec,

Ing. Michal Strelec |
michal@strelec.pro |
+420 608 407 544

Poslat zprávu Reference

Jsem zkušený vývojář informačních systémů a webových aplikací. Sám, případně s vlastním týmem profesionálů z oboru IT, dodávám komplexní vývoj softwaru na míru. Jmenuji se Michal Strelec, jsem vyučený softwarový inženýr na volné noze a mám již přes 13 let zkušeností. Úspěšně jsem realizoval více než 30 projektů. Kancelář mám v hlavním městě Praha, své služby ale poskytuji také na dálku po celé České republice.

Zajímá Vás více informací?

Přečtěte si podrobněji, jak budeme postupovat při vývoji softwaru na míru, nebo si stáhněte moji vizitku s podrobnými informacemi v PDF. Pokud Vás blíže zajímá moje práce, prohlédněte si moje reference, nebo mě kontaktujte a zeptejte se na více informací …

Další podobné články

Co je to webový crawler a na co se používá?

Co je to webový crawler a na co se používá?

Oblíbený druh softwaru, který je naprosto nepostradatelný při jakémkoliv pokusu o sběr a využití veřejných i neveřejných dat z webu. Zjistěte co je to webový crawler, jak pracuje a při čem jej můžete využít ve svůj prospěch …

Co je to webová aplikace?

Co je to webová aplikace?

Pro realizaci informačních systémů na míru se ve většině případů velmi dobře hodí webová aplikace. Zjistěte, co je to webová aplikace, jak funguje, a kdy a proč je vhodné ji použít pro implementaci informačního systému …

Porovnání webové a desktopové aplikace pro realizaci informačního systému

Porovnání webové a desktopové aplikace pro realizaci informačního systému

Pro implementaci každého informačního systému se může lépe hodit jiný typ aplikace. Porovnejme proto z různých pohledů použití webové aplikace a její náhradu v podobě desktopového řešení …

Jak funguje webová aplikace?

Jak funguje webová aplikace?

Při vývoji nového informačního systému do firmy často stojíme před rozhodnutím, jestli pro řešení systému použít webovou aplikaci. Abychom se uměli správně rozhodnout, musíme vědět, jak webová aplikace funguje …