Gabriel Braniša - (17) Crawl and Search

    Table of contents
    No headers

    Crawl and Search

     

    Informácie o ľuďoch

     

     

    Anotácia

     



              Projekt „Crawl and Search, informácie o ľuďoch“, inými slovami vyhľadávanie informácií o ľuďoch, rieši spôsob dolovania relevantných informácií o človeku z jeho osobnej internetovej stránky. Vyhľadávanie sa zameriava na činnosť a kontaktné údaje subjektu. Prebieha vo všetkých podstránkach od zadanej počiatočnej, v prípade rozsiahlosti je možnosť obmedziť prehľadávanie do hĺbky a šírky pomysleného grafu prepojenia stránok. Projekt sa zameriava na osobné stránky pedagógov fakulty informatiky a informačných technológií medzi ktorých patria aj študenti doktorandského štúdia. Aplikácia bude slúžiť pre orientačné informácie o osobe, s ktorou sme v rámci fakulty ešte nemali kontakt a chceli by sme sa vopred informovať, vytvoriť si približný obraz o osobe.

     

     

    Popis riešenia

     

     

    Aplikácia je implementovaná v jazyku C# v prostredí Microsoft Visual Studio. Rozsiahla .NET knižnica disponuje riešeniami, ktoré je pomernej jednoduché použiť k vytvoreniu internetového vyhľadávača informácií. Medzi základné prvky aplikácie patrí:

     

    • HTML komunikácia,

       

    • práca s regulárnymi výrazmi.

       

     

    Na nasledujúcom obrázku 1 je znázornený kolobeh aplikácie. V prvej etape používateľ zadá vstupné parametre:

     

    • počiatočnú URL (vrchol stromu),

       

    • meno a priezvisko osoby a

       

    • rozsah vyhľadávania.

       

     

    Vyhľadávanie informácií

    Obrázok 1, Kolobeh aplikácie

     

     Druhá etapa získa pre aplikáciu dáta v podobe HTML kódu stránok, v ktorý sa budú v poslednej tretej etape vyhľadávať informácie o danej osobe.

     


    Aplikácia má svoje grafické používateľské rozhranie, rozdelené na štyri časti / oblasti.

     

    Časť 1 je miesto na vkladanie vstupných parametrov a ovládanie kolobehu aplikácie. Počiatočnú URL je okrem ručného zadania možné vybrať z ponuky z vopred stiahnutých osobných stránok pedagógov a offline tak spustiť prehľadávanie (za podmienky, že sú dostupné na lokálnom web servery http://localhost/VI/...). V ponuke sú druhy rozsiahlosti prehľadávania (Small, Medium, Large) s výpočtom počtu vrcholov stromu, ktorý sa bude po stlačení tlačidla GO napĺňať HTML kódmi stránok. V oblasti 3 sú v stromovej štruktúre vypísané prehľadávané stránky. Na obrázku 2 je znázornený stav aplikácie po prehľadaní štyroch stránok (rozsah typu Small), kde prvotný uzol stromu je počiatočná URL zo vstupných parametrov. Ďalšie tri boli vyhľadané v HTML kóde prvého uzla a následne prehľadané, resp. získané ich HTML kódy.

     

     

    Obrázok 2, GUI

     

    V oblasti 4 si používateľ môže nechať vypísať HTML kód stránky podľa výberu kliknutím na URL v oblasti 3. Oblasť 2 slúži na výpis správ z aktuálne bežiacich akcií aplikácie (štart vyhľadávania, ukončenie vyhľadávania, atď.).

     


    V skutočnosti sú stránky navzájom poprepájané pomocou hyperliniek do štruktúry grafu, kde môžu vznikať slučky. Na zamedzenie vstupu vyhľadávača do slučky som štruktúru grafu interne v tomto projekte upravil na stromovú štruktúru. Zabezpečuje to detektor slučiek, t.j. každá URL v strom sa v ňom vyskytuje práve raz.

     

    Získanie dát

     

     

    Obrázok 3, Získanie dát

    Získavanie dát, pre poslednú fázu vyhľadávania informácií, je uskutočnené rekurzívnou funkciou Crawling(...). Obsahuje tri parametre:

     

    • URL aktuálne prehľadávanej stránky

       

    • Pozícia v strome (v ktorej hladine)

       

    • Názov uzla (réžia pre grafický komponent vykresľovania stromu, obrázok 2, oblasť 3)

       

    Funkcia dostane URL stránky na ktorú zavedie HTML request. Na odpoveď čaká maximálne jednu sekundu. V prípade timeoutu funkcia vracia false podľa čoho volaná rekurzívna funkcia pozná, že daná URL je nedostupná a nech skúsi ďalšiu v poradí. V prípade úspešného prijatia odpovede v podobe získania HTML kódu stránky si ju interne zapíše do zoznamu a do stromovej štruktúry grafického komponentu zobrazí jej URL v príslušnej pozícii v strome. V získanom kóde stránky sa vyhľadávajú hyperlinky pomocou regulárneho výrazu a na ne sa rekurzívne aplikuje vyhľadávanie. Ukončovacou podmienkou je definovaný rozsah vyhľadávania, ktorý sa v rekurzívnej funkcií vyhodnocuje, t.j. kontroluje rozsah vyhľadávania do hĺbky a do šírky stromu.

     


    HTML komunikácia

     


    Spomínaná HTMLkomunikácia prebieha pomocou .NET funkcií, ktoré umožňujú HTML dotaz a prijatie odpovede. Počas komunikácie sa odchytávajú výnimky, najčastejšie sú:

     

    • Zlý formát URL

       

    • Timeout (nastavený na jednu sekundu)

       


    Regulárne výrazy

     


    .NET disponuje Regex triedou, pomocou ktorej je možné nad určitým textom realizovať regulárny výraz a získať zoznam výsledných reťazcov. Samotné regulárne výrazy som poskladal v programe RegexBuddy, výborným nástrojom na tvorbu regulárnych výrazov. Jeho veľká výhoda je v grafickom používateľskom rozhraní, popri písaní regulárneho výrazu aplikácia kontroluje syntax výrazu (podľa zvolenej platformy, v mojom prípade .NET) a priamo v testovacom texte priebežne zvýrazňuje účinok regulárneho výrazu.

     

              Regulárne výrazy sú podstatné v poslednej fáze aplikácie, vo fáze vyhľadávania informácií v získaných dátach. Vytvoril som si zoznam regulárnych výrazov (vyhľadanie emailu, telefonneho čísla, atď.) ktoré postupne aplikujem na dáta a výsledky zrozumiteľne vypíšem do oblasti 4 podľa obrázku 2.

     


    Regulárne výrazy použité v aplikácií:

     

    • Linka

       

      • href=\"[a-zA-Z./:&\\d_-]+

         

    • Email

       

      • [a-zA-Z0-9_\\.]+([@]|(\\sat\\s)|(ET)|(\\s\\[zavináč\\]\\s))[a-zA-Z0-9-(\\.|(\\sdot\\s))]+(\\.|(\\sdot\\s)|(-dot-))[a-zA-Z]+

         

    • Dátum

       

      • (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d

         

    • Telefónne číslo

       

      •  (\\()?(\\+[0-9]*)?(\\s[0-9]+(\\))?){3,4}

         

    • FIIT / FEI office

       

      • (a|A|b|B|c|C|d|D|e|E)[0-9]{3}

         

    • Záujmy

       

      • [a-zA-Z\\s,]*(i|I)nterest[a-zA-Z\\s,]*.

         

    • Vzdelanie

       

      • [a-zA-Z\\s,]*(r|R)eceived[a-zA-Z\\s,]*(((i|I)ng.)|Phd.)[a-zA-Z\\s,(.)0-9]*.\\s

         

     

    Použité dáta

     

    Výsledná aplikácia s grafickým používateľským rozhraním umožní zadať štartovaciu URL vyhľadávania s uvedením mena človeka, o ktorom chceme získať viac (voľne dostupných) informácií.

     

    Množina dát: Osobné stránky pedagógov FIIT

     

     

    Tieto osoby sú študentom a vyučujúcim prevažne dobre známe, informácie o nich získané crawler-om budú jednoducho overené a vyhlásené z správne alebo nesprávne, t.j. vyhodnotenie extrakcie dát.

     

    Výsledné informácie budú o činnosti danej osoby (diplomant, pedagog, prodekan, ..), publikáciach (knihy, zborniky), kontaktoch (email, telefon). Tieto informácie sú výhradne vnútro-fakultné v rámci domény www.fiit.stuba.sk.

    Vyhodnotenie

     

    Vyhľadanie relevantných informácií o človeku z vopred neznámeho rozloženia informácií na jeho internetovej stránke je problém, ktorý svojím rozsahom presahuje možnosti individuálnej semestrálnej práce študenta. Projekt je zameraný na crawaling, jeden z problémov ktorý bolo nutné riešiť v spojení s GUI aplikácie. Rekurzívne riešenie je efektívne a prehľadné. Rôzne sociálne siete sú interne štruktúrované pre rýchle vyhľadávanie informácií a pre vyhodnocovanie súvislostí medzi rôznymi odlišnými množinami informácií. V osobné stránky ľudí sú však individuálne a o schopnosť výberu relevantných informácií sa pokúšajú čo najhodnejšie navrhnuté regulárne výrazy. Vyhodnotenie výsledkov tohto projektu prebieha porovnaním výstupných hodnôt s osobnými poznatkami o pedagógoch. Celkovo získané informácie z aplikácie pôsobia informatívne, nemožno však hovoriť o plnohodnotných faktoch o danej osobe.

     

    Tag page (Edit tags)
    • No tags

    Files 4

    FileSizeDateAttached by 
     BranisaCrawlerSrc.zip
    No description
    57.71 kB16:54, 12 Dec 2008Gabriel Branisa?Actions
     data.zip
    No description
    41.97 kB13:27, 9 Dec 2008Gabriel Branisa?Actions
     Dokumentacia.pdf
    No description
    269.87 kB16:48, 12 Dec 2008Gabriel Branisa?Actions
     Prezentacia.ppt
    No description
    165 kB17:54, 12 Dec 2008Gabriel Branisa?Actions
    You must login to post a comment.
    Powered by MindTouch Core