PROBLEMATIKA INTELIGENTNÍHO AUTOMATICKÉHO MAPOVÁNÍ WEBOVÝCH STRÁNEK ŘIMNÁČ MARTIN 1, ŠUSTA RICHARD 2, ŽIVNŮSTKA JIŘÍ 3 Katedra řídcí technky, ČVUT-FEL, Techncká 2, Praha 6, tel. +42 224 357 359, fax. + 42 224 918 646 emal 1 : rmnacm@cs.cas.cz, emal 2 : susta@control.felk.cvut.cz, emal 3 : zvk@volny.cz Klíčová slova: webové stránky, mapování, webmapa, automatcké prohledávání Abstrakt: Příspěvek zobecňue dvouleté zkušenost autorů získané př řešení problematky automatckého mapování webových stránek, což představue problém velm podobný dentfkac struktury neznámého systému. Vzáemnou provázanost stránek pomocí hypertextových odkazů lze sce reprezentovat grafy, avšak ech vytváření není zdaleka trvální. Prosté pokusy o zmapovaní webu pomocí automatckého prohledávání odkazů vedou často na nepoužtelné grafy s extrémně složtým strukturam, a případně s nekonečnou velkostí, zeména př analýze dynamcky generovaných stránek. Článek popsue realzovanou metodu pro také automatcké vytváření herarchckých map - ty lze použít Obecně navržený klent/server nástro e určen pro generování map struktury webových serverů. Struktura webu e pak vntřně reprezentována ako orentovaný graf. Článek se zabývá vedle problematky konstrukce tohoto grafu z dat webových serverů hlavně algortmem pro generování herarchckých map. Ty mohou být využty pro orentac návštěvníků webových stránek nebo pro webmasterskou čnnost, dále pro usnadnění orentace návštěvníků webu nebo pro detekc chyb ve struktuře stránek. 1 ÚVOD Na obsah webových serverů můžeme pohlížet ako na rozsáhlou znalostní báz dat s velkou neurčtostí. Tuto báz potřebueme strukturovat a prořezávat, ať na globální úrovn pomocí nternetových fulltextových stroů nebo katalogů, tak na úrovn ednotlvých webových serverů. Popsovaná metoda chápe strukturu webových stránek ako orentovaný graf. Webové stránky sou reprezentovány uzly, hypertextové a hypermedální odkazy pak orentovaným hranam. Uvážíme-l, že stránky mohou být generovány dynamcky, hloubka takového grafu může být nekonečná. Metoda neprve data získá, webové stránky stáhne z webového serveru a pomocí prohledavače (crawleru) [1] převede stránku na uzel s daným vlastnostm a orentované hrany reprezentuící odkazy mez stránkam. Tato vytvořená struktura e uložena do databáze. Poem webová stránka zde označue dokument lbovolného, textem reprezentovatelného, formátu získaný z webového serveru. Nashromážděná data sou užívána k výpočtu ohodnocení stránek, tzv. PageRank [3], pro člověka sou však velm nepřehledná, navíc zobrazení všech odkazů mez stránkam e výpočetně náročné (srovnatelné s úlohou obchodního cestuícího, která e NP-úplná). Naopak mapa vytvořená pomocí popsované metody [2] e podgrafem tohoto grafu, obsahue mnmální počet hran př zachování počtu uzlů, navíc požadue mapu ve formě stromu. Systém e doplněn o webové rozhraní, které vedle admnstrace generování map umožňue fulltextové vyhledávání. R174-1
2 ZÍSKÁVÁNÍ INFORMACÍ 2.1 Stažení V první fáz potřebueme získat data z webových stránek umístěných na obecném webovém serveru. Systému explctně zadáme URL adresu lbovolné stránky umístěné na serveru, pro ednoduchost uvažume domovskou stránku webové prezentace (homepage). Systém pomocí GNU nástroe wget v rekurzvním módu stáhne tuto stránku a následně provede analýzu odkazů. Pokud některá z odkazovaných stránek eště nebyla stažena, e zařazena do fronty a stažena v některém dalším průchodu cyklu. Cyklus e ukončen krtérem na maxmální hloubku grafu, tedy dosažení zadaného počtu stránek mez analyzovanou a zadanou stránkou. Během procesu stahování detekueme neplatné odkazy odkazy na neexstuící (č nedostupné) stránky. Výsledkem tohoto kroku e kope všech ze zadané stránky přístupných stránek na lokální souborový systém včetně adresářové struktury. 2.2 Korespondence URL a obsahu stránky U dynamcky generovaných webových stránek e nutné navíc vyřešt netrvální úlohu korespondence mez URL adresou stránky a eím o obsahem. URL adresa takových stránek se skládá ze ména skrptu, které následue znak? a znakem & oddělený seznam předávaných atrbutů a ech hodnot. Ne každý atrbut však má vlv na obsah dynamcky vygenerovanou stránku. Měme např. URL adresu http://example.com/tsk.php?azyk=cz&clanek=123&uzvatel=987, pak atrbuty clanek a azyk udávaí číslo a azykovou mutac tsknutého článku a tedy zásadně ovlvňuí obsah stránky. Naopak atrbut uzvatel specfkue číslo návštěvníka, ten žádným způsobem obsah neovlvňue. O vlvu parametrů URL adresy na obsah generované stránky systém nemá žádnou nformac. Sofstkované metody detekuí tento vlv pomocí různých heurstk. Pro potřeby zákaznckého mapování stránek postačue možnost přdání takovéto aprorní nformace pomocí voleb systému. Parametry každého skrptu rozdělíme na povnně uvedené, povnně nabývaící edné z množny hodnot a nepovnné. Specálním případem nepovnného atrbutu e doplnění atrbutu na předdefnovanou hodnotou, není-l ve výčtu parametrů URL adresy uveden. Vlv neuvedených atrbutů na obsah stránky považueme za zanedbatelný. Pokud URL stránky nevyhovue zadanému výčtu podmínek na parametry, e stránka označena ako gnorovaná. V našem příkladu by např. parametr clanek byl povnný, azyk nepovnný s předdefnovanou hodnotou cz. Parametr uzvatel by v seznamu nebyl uveden. V poslední fáz operací s URL adresou seřadíme parametry podle abecedy a tím získáme ednoznačnou transformac URL adresy stránky na odpovídaící obsah. Na úrovn souborového systému nahradíme soubor s původní URL adresou symbolckým odkazem na soubor s adresou upravenou. 2.3 Analýza obsahu stránky Nyní můžeme přkročt k samotné analýze stránek. Každá stránka e popsána nformacem z HTTP hlavčky a samotným obsahem stránky. Jedním z atrbutů HTTP hlavčky e typ obsahu stránky, podle ehož hodnoty zavoláme dílčí fltr na samostatné zpracování obsahu stránky. U fltru pro (X)HTML formát navíc musíme uvažovat možnost explctního předefnování hodnot atrbutů HTTP hlavčky. HTTP hlavčka poskytue nformace ak o stránce, tak o serveru, případně o spoení mez klentem a serverem. Pro naše účely zmíníme vedle typu obsahu (content-type) délku obsahu (contentlength), dobu poslední modfkace obsahu (last-modfed), dobu platnost (expres), příp. hlavčka může obsahovat azykovou mutac stránky. Systém umožňue obsah stránek rozdělt do textových bloků a ty fulltextově zandexovat. Příkladem takového bloků e např. ttulek stránky, text na odkazu na danou stránku, odstavec atd. R174-2
Výhodou tohoto přístupu e ovlvnění výpočtu celkové relevance odkazu podle typu textového bloku, tedy výskyt klíčového slova v ttulku stránky e pro vyhledavač významněší nežl výskyt slova v odstavc. Fltr pro (X)HTML formáty rovněž regstrue odkazy na stránky, přčemž na URL adresy odkazovaných stránek e aplkována výše popsané transformace URL adres. Analýza probíhá postupně pro všechny stažené stránky reprezentované soubory, symbolcké lnky přeskakueme. Analýzu provádíme herarchcky, tedy první analyzueme úvodní stránku, pak všechny stránky odkazované ze stránky úvodní atd. až do maxmální hloubky grafu. Stránky, na které e odkazováno z maxmální hloubky a dosud nebyly zandexovány, označíme ako stránky regstrované. Každou vrstvu (uzly se shodnou hloubkou) uložíme do databáze zvlášť, což umožňue řízení zpracování stránek z databáze. Výhodou tohoto přístupu e možnost paralelního generování map až do hloubky vrstvy před aktuálně analyzovanou vrstvou stránek. 2.4 Aktualzace Použtý nástro wget umožňue ednou ž stažené stránky pouze aktualzovat, tedy znovu stáhnout pouze ty stránky, které byly změněny. Využeme-l v souborovém systému symbolckých odkazů a znalostí o statusu stránek (především gnorované stránky) z databáze, další aktualzace prax sou podstatně méně časově náročné. Vlastní systém obsahue prostředky pro automatckou aktualzac stránek ednou za specfkovanou perodu. 2.5 Ohodnocení stránek Pro potřeby vyhledavače a generování map potřebueme každou stránku ohodnott. V systému e použta základní verze metody PageRanku [3]. Jeí modfkace využívaí komerční vyhledávače včetně Google, který poprvé mplementoval. Předpokladem správné funkčnost metody e, že dobrá stránka odkazue na né, steně dobré stránky. Měřítkem kvalty stránky e tedy počet na stránku odkazuících stránek vážený ech kvaltou. Zaveďme následuící značení. Množnu všech stránek p označme P, tato množna reprezentue uzly grafu. Defnume množnu odkazů L, ednotlvé prvky množny deklarume ako < a, b > ; a, b P ve významu odkazu ze stránky a na stránku b. Množna L tedy reprezentue hrany grafu. Zaveďme zobrazení PR(p), které každé stránce p přřadí eí ohodnocení. Vzorec pro výpočet ohodnocení (Page-Rank) e PR( q ) PR( p) = (1 k) + k ; x, q, p P (V1) < q, x > < q, p> L Symbol k e konstanta algortmu, k (,1), doporučená hodnota k=,85 zašťue optmální konvergenc. Součet e přes všechny stránky q odkazuící na stránku p. Symbolem < q, x > rozumíme počet stránek odkazovaných ze stránky q. Příklad výpočtu e na obrázku 1. Ze vzorce vyplývá, že pro p P : PR( p) 1 k. Této vlastnost lze zneužít ke zvýhodňování stránek [4]. Tyto metody ale sofstkované vyhledavače detekuí a penalzuí zvýhodňované stránky. R174-3
3 GENEROVÁNÍ MAP V souladu s předchozím textem zemníme množnu P na množnu zandexovaných stránek P I, množnu regstrovaných stránek P R, množnu gnorovaných stránek P G a množnu neplatných stránek (přesně URL adres) P N. 3.1 Kontrola platnost odkazů Neprve zmíníme automatcký mechanzmus kontroly platnost odkazů. Výsledkem operace e výčet odkazů (hran v grafu), které vedou na neplatné stránky. Formálně tedy L nv { < p q >, p P q P } =,, (A1) I N Jednoduše lze nahlédnout, že algortmus A1 e složtost o(n). Tento algortmus využí webmasteř rozsáhlých webových prezentací. Systém bude perodcky aktualzovat svo báz dat stále se vyvíeící webové prezentace a upozorní webmastera na stránku, která obsahue neplatný odkaz včetně nformace o URL adrese odkazované stránky. 3.2 Seznam externích odkazů Př SEO optmalzac stránek e žádoucí znát všechny externí stránky, na které e z analyzované webové prezentace odkazováno. Zda-l se edná o externí zdro poznáme testem shodnost men domén. Formálně doménu stránky označme symbolem D(p), pak mapu externích odkazů vygenerueme ako výčet z množny L dle L ext { < p q >, D( p) D( q), p P q P P } =,, (A2) I Povšmněme s, že podle A2 neplatná URL adresa, byť s externí doménou, není součástí externích odkazů, ale považue se za chybu na straně analyzované webové prezentace. Tak tomu e u ných automatcky řízených prohledavačů. 3.3 Herarchcká mapa I Základní motvací popsovaného systému e generování herarchcké mapy. Požadume graf H se H = P, L. Symbol P reprezentue uzly v -té vrstvu stromu H. Specfkume podmínky na graf H. stromovou strukturou, ( ) P { p p } = ; (P1) P I p P P D( p) D( p ) odpovídá právě eden uzel v P. (P2) I R, = 1 L = l =< p, q > ; p P ; q U P ; l L Lext (P3) 1, 2 1 1 2 2 1 2 1 2 I R 1, 2 l l ; l =< p, q >, l =< p, q > ; PR( p ) PR( p ); p, p, q P P : l L l L (P4) Interpretume tyto podmínky: 1. Herarchcká mapa má ve svém kořen ednou stránku a to homepage webové prezentace. Ta musí být zandexována. 2. Herarchcká mapa obsahue všechny zandexované a regstrované stránky přístupné z homepage. Každá stránka e v mapě uvedena právě ednou. Mapa obsahue stránky pouze z domény, která e určena homepage. R R174-4
3. Z množny odkazů L vybíráme pouze ty odkazy L, které vedou na v mapě dosud neuvedené stránky. Z podmínek 1 až 3 e možné nahlédnout, že se edná o algortmus generuící kostru grafu. 4. V prax se běžně vyskytuí případy, kdy ze dvou různých stránek patřících do stené vrstvy (vyplývá z předchozích podmínek) e odkazováno na ednu stránku, kostra grafu tedy není ednečná. Pak e upřednostněna ta stránka, která má větší hodnotu ohodnocení. Se 4. podmínkou souvsí problém možné neexstence maxma ohodnocení stránek, zde exstue pouze suprémum. V takovém případě povolueme nedetermnstcké řešení, vybíráme náhodně ednu ze stránek, eíž ohodnocení nabývá hodnoty supréma. Algortmus e mplementován pomocí SQL funkce přímo v prostředí databáze PostgreSQL v azyce pl/pgsql, funkce vrací XML-valdní řetězec popsuící danou mapu. Výpočet rozdělueme do dvou částí. Neprve generueme herarchckou mapu, edná se o algortmus postavený na klasckém prohledávání do šířky. Algortmus startueme s lbovolnou hranou vedoucí do homepage p odpovídaícímu uzlu. Hrany grafu, které vyhovuí podmínce P3, vložíme do dočasné tabulky. Ta vedle počátečního a koncového uzlu hrany obsahue označení vrstvy (abychom mohl testovat en aktuální vrstvu). Podmínku přdání hrany na q z P3 e pro potřeby databázového algortmu přepíšeme podle m q U P < p, q > L (P3.a) Algortmus končí, pokud neexstue žádná další hrana na uzel, který eště není součástí mapy. Hloubka herarchcké mapy e m. Tedy U m < p, q > L : q P (P5) Uvažueme, že z optmalzačních důvodů provádíme na ednu vrstvu mapy právě eden výběr hran. Podmínku P3 upravíme na podmínku P3.b (resp. ekvvalentní podmínku podle P3.a), která neuvažue stránky v aktuálním kroku, protože podmínku P3.a v této podobě nelze databázově nterpretovat. 1 1 L = l =< p, q > ; p P ; q U P ; l L Lext (P3.b) Pak ale musíme přpustt, že v aktuální -té vrstvě se obeví více uzlů téže stránky, každý spoený hranou z ného uzlu, tedy stuace l l l =< p q > l =< p q > p p P 1 1, 2; 1 1,, 2 2, ; 1, 2, q P (P6) To e ale v rozporu s podmínkou P2. Proto zavádíme podmínku P4 a ze všech takových hran vybíráme právě ednu s maxmální hodnotou ohodnocení (tupá nerovnost v podmínce P4). Tím splňueme všechny podmínky a algortmus generue kostru grafu dle původních požadavků. Předpokládeme, že samotný výběr hran z databáze e o(n) a test na podmínku každé hrany e o(n). Celková složtost výběru hran s ohledem na podmínku e o(n 2 ). Uvažme kraně nepříznvý případ, kdy pro každý uzel p exstue právě edna hrana do uzlu p +1. Pak prohledávání proběhne celkem (n-1)-krát. Celková složtost této část algortmu generování mapy e tedy o(n 3 ). R174-5
Nyní máme v dočasné tabulce uloženy všechny hrany L potřebné pro vygenerování herarchcké mapy H. Pokračueme druhou fází, generováním řetězce reprezentuícího herarchckou mapu. Jedná se opět o prohledávání, tentokráte do hloubky. Složtost této fáze e n-krát o(n) výběr z dočasné tabulky, tedy o(n 2 ). Celková složtost celého algortmu včetně vygenerování výstupu ve formátu XML e o(n 3 ). Efektvní složtost e však podstatně nžší. Takto vygenerovanou mapu lze pomocí XSL transformovat do PDF formátu nebo lbovolného desgnu XHTML stránky, se zobrazením všech nebo en některých hodnot získaných předchozím procesem z webových stránek. Seznam zobrazovaných hodnot může být rozšířen o další výpočty nad strukturou XML, např. e mplementováno zobrazení grafu u každé stránky v mapě, který ukazue velkost odkazovaných stránek (a obecně souborů) podle ech typu obsahu. Tak lze např. bezpečně na první pohled poznat galer obrázků v dané webové prezentac. 3.4 Příklad Ilustrume algortmus generování herarchcké mapy obrázkem 1, nad každým uzlem e uvedena hodnota PageRanku po první terac, úvodní stránka e označena HP. Obrázek 1 - Příklad generování herarchcké mapy V prvním kroku vybereme pouze ty hrany, které odkazuí z úvodní stránky, tedy hrany a, b, c (pravdlo P2). V druhém kroku vybíráme ty hrany, na echž uzly odkazovaly hrany z předchozího kroku a zároveň na ech cílové uzly nevede žádná hrana (pravdlo P3). Poztvním případem sou hrany d, f, g a g', negatvním pak hrany a ', které odkazuí na uzly ž odkazované z ných hran. Hrana e není vybrána podle pravdla P4, neboť hrana f odkazue na stenou stránku ze stené úrovně, ale odkazuící stránka má vyšší hodnotu PageRank. Hrana h není v mapě uvedena, ukazue podobně ako hrany a ' na uzel, který ž byl do mapy přdán v některém z předchozím kroku. V mapě ž sou obsaženy všechny uzly (pravdlo P5), které byly součástí celé struktury webové prezentace, proto algortmus končí. Výsledná herarchcká mapa e v obrázku naznačena tučným hranam. R174-6
4 SHRNUTÍ Příspěvek popsue mplementac obecného nástroe pro prác s webovým stránkam. Součástí nástroe e webové rozhraní, ze kterého e nástro ovládán. Nástro umožňue určtý stupeň paralelzace pomocí zavedeného balíčkového systému a prortně řazené fronty dotazů. Řízení e ponecháno v rež databázového stroe, ednotlvé požadavky na systém sou reprezentovány záznamy v databáz. Navržený systém umožňue ednoduchou rekonfgurovatelnost, podporue perodckou aktualzac výsledků požadavků. Detalní pops řídcího systému e však mmo rámec tohoto příspěvku. Popsovaná metodka byla testována na několka webových prezentací, od statckých stránek s ednoduchou strukturou až po stránky dynamcky generované [5] s použtím aprorních nformací bez těchto nformací. Nástro pomohl př částečné restrukturalzac zmíněné webové prezentace odhalováním neplatných odkazů. V prax se př generování herarchckých map zatím vždy potvrdl předpoklad správné funkčnost metody, kterým e strukturalzace webových prezentací. 5 LITERATURA [1] ŘIMNÁČ, M. Mapa webové sítě. Katedra řídcí technky, FEL, ČVUT, 24. Dplomová práce. [2] ŽIVNŮSTKA, J. Webové rozhraní pro mapu webové sítě. Katedra řídcí technky, FEL, ČVUT, 24. Dplomová práce. [3] HENZINGER, M.R. Hyperlnk Analyss for the Web. IEEE Internet Computng. 21 (January/February). Stránky 45-5. [4] ŘIMNÁČ, M.; ŠUSTA, R.; ŽIVNŮSTKA J. Automatcké prohledávání webových stránek I. Automatzace 24/4. [5] DCE. Mapa webu. [on-lne]. Katedra řídcí technky, FEL, ČVUT. <http://dce.felk.cvut.cz/pub/webmapa/cs/webmapa.html> R174-7