Wikipedista:Polda18/Pískoviště/Články/Pískoviště 5

Web scraping (též web harvesting nebo extrakce dat z webu) je počítačová softwarová technika extrahování informacíwebových stránek. Takové programy běžně využívají simulace člověka procházejícího webový prostor buď implementací jednoduchého HTTP nebo doplněním samostatného webového prohlížeče (například Mozilla Firefox).

Web scraping se podobá indexaci webu, kde se informace na webových stránkách indexují pomocí botů nebo web crawlerů, a která je univerzální technikou používanou množstvím vyhledávačů. Naproti tomu se web scraping zaměřuje spíše na transformaci nestrukturovaných dat na webu (typicky ve formátu HTML) do strukturovaných dat, která lze uložit a analyzovat v centrálních či lokálních databázích nebo tabulkách. Web scraping je často automatizovaný, kdy simuluje člověka při brouzdání Internetem za pomoci počítačového softwaru. Využití web scrapingu zahrnuje online porovnávání cen, extrakci kontaktů, monitoring dat o počasí, detekci změn stránek, rešerše, web mashup a integraci webových dat.

Software editovat

Existuje spoustu nástrojů a softwaru pro extrakci dat, které umožňují extrakci konkrétních typů dat. Tento software se může pokusit o automatické rozpoznání struktury webové stránky nebo nabídne záznamové prostředí, které odstraní nutnost manuálně napsat program pro automatickou extrakci dat či nějaké skripty použitelné k extrakci a transformaci obsahu a ukládá do lokálních databázových souborů. Některé extrakční softwary umožňují extrakci dat přímo z webových API.

Příklady nástrojů editovat

  • cURL – nástroj příkazové řádky a knihovna pro přenos (včetně stahování) dat přes URL.
  • Data Toolbar – doplněk pro prohlížeče Internet Explorer, Mozzila Firefox a Google Chrome, který sbírá a konvertuje strukturovaná data z webových stránek do tabulkového formátu, který lze načíst do tabulkového procesoru či programu pro správu databází.
  • Diffbot
  • Heritrix
  • HtmlUnit
  • HTTrack
  • iMacros
  • Import.io

Techniky editovat

Web scraping je proces automatické kolekce informací z Internetu. Je to prostor s aktivním vývojem sdílejícím obecné cíle s vizí sémantického webu, ambiciózní iniciativa, která stále vyžaduje zdokonalování v text processingu, porozumění sémantice, umělé inteligenci a interakcích mezi člověkem a počítačem. Současná řešení web scrapingu zahrnují širokou škálu metod od tzv. ad-hoc, vyžadující řízení člověkem, až po plně automatizovaný systém schopný konvertovat s jistými omezeními celou webovou stránku do strukturovaných informací.

  • Manuální copy&paste: Někdy i ty nejlepší metody web scrapingu nedokáží nahradit manuální rešerši člověka a prostý copy&paste a někdy může být tato metoda jediná funkční v případě, kdy stránky, ze kterých chceme data čerpat, nastaví bariéry proti automatům.
  • Grepování textu a regulární výrazy: Jednoduchá, leč účinná metoda extrakce informací z webových stránek může být založena na unixovém příkazu grep nebo funkce porovnávání textů regulárními výrazy z programovacích jazyků (například PHP, Perl nebo Python).
  • Programování HTTP: Statické a dynamické webové stránky mohou být sestaveny posíláním HTTP žádostí ke vzdálenému webovému serveru použitím programování socketů.
  • Čtení HTML: Mnoho webových stránek generuje obsah z vnitřních strukturovaných zdrojů (například databází). Data ze stejné kategorie jsou typicky zakódované do podobných stránek pomocí obecného skriptu či šablony. V těžbě dat takový program, který detekuje šablonu v odpovídajícím zdroji informací, extrahuje jeho obsah a transformuje data do podobné formy. Tomuto programu se říká wrapper. Generující algoritmus wrapperu předpokládá, že vstupní stránky do indukčního systému wrapperu odpovídají obecné předloze a mohou být snadno identifikovatelné na základě obecné struktury URL.[1] Mimo to některé jazyky polo-strukturovaných dat (například XQuery nebo HTQL) mohou být použity ke čtení HTML stránek a následnému sestavení a transformaci obsahu stránky.
  • Čtení DOM: Zakomponováním dolovacího softwaru do smostatných webových prohlížečů (například Internet Explorer či Mozilla) může tento software sestavit dynamický obsah stránek generovaný skriptem na straně klienta. Tyto prohlížečové prvky rovněž umožňují stavět stránky do struktury DOM, která je založena na schopnosti programu vydolovat určité části stránky.
  • Software pro web scrapping: Existuje množství dostupných softwarových nástrojů umožňujících nastavit si různé metody extrakce dat. Tento software se pokouší automaticky rozeznat strukturu dat stránky či nabízí záznamové prostředí, které odstraňuje nutnost manuálně psát kód pro dolování dat, nebo nějaké skriptové funkce, které lze použít k extrakci a transformaci obsahu, a databázové prostředí, které umožňuje ukládat vydolovaná data do lokálních databází.
  • Vertikální úložiště: V oblasti dolování dat se pohybují společnosti, které vyvinuly speciální dolovací platformy. Tyto platformy vytvářejí a monitorují množství „botů“ pro speciální vertikální úložiště bez přímého žízení člověkem a bez speciálního zaměření na určité stránky. Příprava vyžaduje počáteční založení databáze pro celé vertikální úložiště a poté sama platforma vytváří dolovací boty. Odolnost platformy se vyměřuje kvalitou sestavovaných informací (většinou počet jednotlivých polí) a jejím růstem (jak rychle roste objem dat platformy ke stovkám až tisícům stránek). Tento růst je často používán k cílení tzv. dlouhého chvostu stránek, které základní dolovací platformy uznávají komplikovanými nebo příliš namáhavými k vydolování dat.
  • Detekce sémantických značek: Dolované stránky mohou obsahovat metadata nebo sémantické značení a poznámky, které mohou být využity k lokalizaci specifických útržků dat. Pokud jsou značky zakomponovány do stránky (jako v případě mikroformátu), tato technika může připomínat speciální obdobu metody čtení DOM. V jiném případě jsou značky, organizovány do sémantické vrstvy,[2] uloženy a spravovány odděleně od webových stránek, takže scrappery mohou sestavit schéma dat z této vrstvy před dolováním stránek.
  • Analyzátory webových stránek založené na počítačovém vidění: Je zde snaha o použití strojového učení a počítačového vidění, které se pokouší identifikovat a extrahovat informace z webových stránek pomocí visuální interpretace stránek tak, jak je možná vidí člověk.[3]

Legalita editovat

Snaž se udržet téma aspoň trochu mimo USA, hledej i jinde! • Tento řádek přijde smazat!

Web scraping může porušovat podmínky použití některých stránek. Prosaditelnost těchto podmínek je nejasná.[4] Zatímco přímé kopírování původních informací je v mnoha případech nelegální, v USA soudy v případu sporu společností Feist Publicitations Inc. a Rular Telefone Service kopírování informací povolily. Americké soudy také schválily, že uživatel scrapperu nebo bota bude odpovědný za spáchání vniknutí na majetek,[5][6] což znamená, že počítačový systém je brán jako zákonný majetek, na který se uživatel scrapperu snaží vniknout.


Pokračuj…

Odkazy editovat

Reference editovat

V tomto článku byl použit překlad textu z článku Web scraping na anglické Wikipedii.

  1. SONG, Ruithua. Joint Optimization of Wrapper Generation and Template Detection. Microsoft Research; The 13th International Conference on Knowledge Discovery and Data Mining. 2007-09-14. (anglicky) 
  2. Semantic annotation based web scraping [online]. GooSeeker.com [cit. 2016-03-06]. Dostupné online. (anglicky) 
  3. ROUSH, Wade. Diffbot Is Using Computer Vision to Reinvent the Semantic Web. xConomy.com [online]. 2012-07-25, rev. 2013-03-15 [cit. 2016-03-06]. Dostupné online. (anglicky) 
  4. FAQ about linking – Are website terms of use binding contracts? [online]. www.chillingeffects.org, 2007-08-20. Dostupné online. (anglicky) 
  5. Internet Law, Ch. 06: Trespass to Chattels [online]. Tomwbell.com, 2007-08-20. Dostupné online. (anglicky) 
  6. What are the „trespass to chattels“ claims some companies or website owners have brought? [online]. www.chillingeffects.org, 2007-08-20. Dostupné online. (anglicky)