Miroslav Jurík - niečo ako Google news (Nutch, RSS, crawler)

    Table of contents
    1. 1. News RSS NUTCH

    Obsah je prenesený z miesta http://vi.ikt.ui.sav.sk/User:Mirkes (tam bol prvotne zle vytvorený)

    Obsahuje prenesená súbory, ktoré boli po dohode s cvičiacim doplnené o detailný inštalačný postup.

    News RSS NUTCH

     

    1 NUTCH RSS plugin
    1.1    Motivácia projektu
    Motiváciou projektu je vytvorenie RSS čítačky, ktorá sťahuje RSS pomocou programu NUTCH, parsuje ich RSS pluginom, ukladá ich v indexe Lucene a vo výsledku sa dá prehľadávať pomocou jednoduchej aplikácie.
    RSS čítačiek existuje veľa a svojou funkcionalitou presahujú niekoľkonásobne mnou implementovanú. Motiváciou projektu bolo hlavne naučenie sa práce s NUTCH-om, jeho architektúrou pre tvorbu pluginov a práca s knižnicou Lucene.
     
    1.2    Prehľad projektu
    NUTCH je open-source program, ktorý je založený na  rozširovaní pomocou rozšírení (pluginov). Práve tieto rozšírenia (pluginy) sú zaujímavé z pohľadu implementácie. Aj keď NUTCH obsahuje plugin pre parsovanie RSS dokumentov, je tento plugin pre účely tohto projektu nepoužiteľný a to z nasledujúcich príčin:
    -    Plugin síce parsuje RSS dokumenty ale ukladá položky označené  tagom „<item>”  v celku a nie osobitne do samostatného indexovaného dokumentu.
    o     Polia Title, Description spája do jedného textového reťazca a tie indexuje ako celok
    o     Ostatné časti XML dokumentu neindexuje
    -    Plugin nevytvára polia (Fields) pre položky „<item>” v indexe Title, Description, Link, PubDate, Guid, ImageTitle, ImageUrl, ImageLink.
    -    Plugin nevytvára polia pre RSS dokument akými sú: ChannelUrl, Link, Description, LanguageID, Copyright, PubDate, LastBuildDate,Category, Ttl, ImageTitle, ImageUrl, ImageLink.
     
    1.3    Súčasný stav
    RSS čítačiek existuje početné množstvo. Delíme ich na webové a desktopové aplikácie. Výhodou webových je, že sú stále aktívne a sťahujú obsah pravidelne. Nevýhodou desktopových čítačiek je, že sťahujú obsah iba pri zapnutom počítači a môže nám pri dlhšom intervale obsah uniknúť.
     
    1.4    Opis implementácie
    Aj napriek veľmi slabej dokumentácie a aj keď spočiatku nefungovalo to čo podľa dokumentácie fungovať malo, rozhodol som sa implementovať plugin do systému NUTCH, ktorý po spustení prehliadania (angl. crawl) webu bude indexovať RSS dokumenty automaticky.  Implementovaný plugin sa delí do 3 častí:
    -    Parser – Objekt org.apache.nutch.parse.rss.RSSParser je rozšírenie súčasného pluginu, ktorý rozširuje jeho funkcionalitu.
    -    Indexer – Objekt, ktorý je novou časťou a je zodpovedný za vytvorenie polí z objektov poskytnutých z objektu RSSParser.
    Vyhľadávanie je realizované vlastnou webovou aplikáciou, ktorý prehľadáva indexový súbor LUCENE vytváraný pluginom.
     
    1.4.1    Crawler
    Ako crawler je použitý NUTCH, ktorý na základe typu súboru zavolá náš plugin.
     
    1.4.2    Parser
    Pôvodná implementácia plugin „parse-rss“ bola nepostačujúca a vola rozšírená o nasledujúce funkcionality:
    -    Parser používa balík org.apache.commons.feedparser, ktorý parsoval rss dokumenty iba na úrovni link, title a description. Balík sk.fiit.mjurik.vi.feedparser parsuje všetky polia podľa RSS 2.0 štandardu.
    -    Indexer indexoval obsah XML v celku a len description, title
    o     Indexovaný obsah je rozdelený do viacerých dokumentov
    -    Indexer indexoval aj obsah stránok, na ktoré ukazuje atribút <link>, index obsahuje len obsah RSS dokumentov
     
    1.4.3    Práca s indexom Lucene
    Práca s indexom využíva vlastnú funkciu, ktoré ukladá a aktualizuje obsah RSS dokumentov a pridáva nové typy polí podľa štruktúry RSS dokumentu.
     
    1.5    Problémy pri implementácii
    Verzia NUTCH 0.9 mala podľa NUTCH-443 issue podporovať vrátenie viacerých Parse objektov z pluginového systému. Slabá dokumentácia tohto prístupu mi zabránila vo vyrobení takéhoto všeobecného pluginu podľa odporúčaní. Plugin síce parsuje RSS dokumenty ale indexový súbor s jeho položkami vytvára priamo na disku pomocou LUCENE. Vyhľadávanie je realizované pomocou jednoduchej aplikácie, ktorá pracuje nad týmto vytvoreným indexom.
     
    1.6    Testovanie
    Internetové stránky obsahujú v súčasnosti len zopár RSS dokumentov (niekedy žiaden alebo len jeden) a jej crawl je časovo náročný. Na odsimulovanie som vytvoril jednoduchú stránku kde som vytvoril odkazy na viacero RSS dokumentov a tým odstránil nutnosť parsovania množstva stránok za účelom nájdenia odkazov. Stránka obsahovala odkazy (href) na tieto dokumenty:
     

    http://servis.pravda.sk/rss.asp?r=sk_pspravy
    http://servis.pravda.sk/rss.asp?r=sk_pludia
    http://servis.pravda.sk/rss.asp?r=sk_pakcie

    http://servis.pravda.sk/rss.asp?r=sk_pitb 

    http://www.zive.sk/Rss/sr-1-sc-47/default.aspx?rss=1
    http://www.topky.sk/rss/1/Spravy.rss
    http://www.topky.sk/rss/10/Spravy_-_Domace.rss
    http://www.topky.sk/rss/11/Spravy_-_Zahranicne.rss
    http://www.topky.sk/rss/7/Ekonomika.rss
    http://www.topky.sk/rss/6/Sport.rss
    http://www.topky.sk/rss/12/Sport_-_Hokej.rss
    http://www.topky.sk/rss/14/Sport_-_Futbal.rss
    http://www.topky.sk/rss/5/Kultura.rss
    http://www.topky.sk/rss/15/Prominenti.rss
    http://www.topky.sk/rss/13/Zaujimavosti.rss
    http://www.topky.sk/rss/20/Vyhrajte_s_nami.rss
    http://www.topky.sk/rss/5576/Pocitac...e_sa_hned_.rss
    http://servis.pravda.sk/rss.asp
    http://servis.pravda.sk/rss.asp?r=domace
    http://servis.pravda.sk/rss.asp?r=svet
    http://servis.pravda.sk/rss.asp?r=ckronika
    http://servis.pravda.sk/rss.asp?r=zaujima
    http://servis.pravda.sk/rss.asp?r=sk-komentare
    http://servis.pravda.sk/rss.asp?o=sk_sport
    http://servis.pravda.sk/rss.asp?o=sk_hokej
    http://servis.pravda.sk/rss.asp?o=sk_futbal
    http://servis.pravda.sk/rss.asp?r=sk_nhl
    http://servis.pravda.sk/rss.asp?r=sk_sf1
    http://servis.pravda.sk/rss.asp?r=sk_szsporty
    http://servis.pravda.sk/rss.asp?r=sk_sbasket
    http://servis.pravda.sk/rss.asp?r=sk_stenis
    http://servis.pravda.sk/rss.asp?r=sk_rsport
    http://servis.pravda.sk/rss.asp?o=sk_peniaze
    http://tema.pravda.sk/rss.aspx 
    http://servis.pravda.sk/rss.asp?o=sk_autoweb
    http://servis.pravda.sk/rss.asp?o=sk_profesia
    http://servis.pravda.sk/rss.asp?o=sk_zdravie
    http://pocasie.pravda.sk/rss.aspx
    http://blog.pravda.sk/rss/xml.html 
     


    http://servis.pravda.sk/rss.asp?r=sk_dochodky
    http://servis.pravda.sk/rss.asp?r=sk_pkariera
    http://servis.pravda.sk/rss.asp?o=sk_koktail
    http://servis.pravda.sk/rss.asp?r=sk_soubiz
    http://servis.pravda.sk/rss.asp?r=sk_kfilm
    http://servis.pravda.sk/rss.asp?r=sk_khudba
    http://servis.pravda.sk/rss.asp?r=sk_kzs
    http://servis.pravda.sk/rss.asp?r=sk_ksav
    http://servis.pravda.sk/rss.asp?r=sk-kcestovanie
    http://servis.pravda.sk/rss.asp?r=sk_kbyvanie
    http://servis.pravda.sk/rss.asp?o=sk_veda
    http://servis.pravda.sk/rss.asp?r=sk_vvesmir
    http://servis.pravda.sk/rss.asp?r=sk_vzem
    http://servis.pravda.sk/rss.asp?r=sk_vclovek
    http://servis.pravda.sk/rss.asp?r=sk_vtech
    http://servis.pravda.sk/rss.asp?r=sk_vkom
    http://servis.pravda.sk/rss.asp?r=sk_vobraz
    http://servis.pravda.sk/rss.asp?r=sk_regiony
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96002
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96007
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96004
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96006
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96001
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96008
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96003
    http://servis.pravda.sk/rss.asp?r=sk...ony&klic=96005 


     

     
    1.8    Inštalácia pluginu

    Nachádza sa v dokumente.

    Tag page (Edit tags)
    • No tags

    Files 9

    FileSizeDateAttached by 
     IndexDir2.rar
    Zbalený adresár D:\skola\VI\eclipse\rss-handler\IndexDir2 , ktorý obsahuje mnou nacrawlované dáta uloženéé v indexe Lucene.
    1232.41 kB00:44, 15 Jan 2009mirkesActions
     luke-nahliadnutie_do_indexu.JPG
    Nahliadnutie do indexu cez Luke
    258.05 kB00:47, 15 Jan 2009mirkesActions
     parse-rss (1).rar
    (zdrojové kódy)Vynatok z projektu release0.9, čo predstavuje zdrojové kódy nutch-u. Archív obsahuje len časť "release-0.9\src\plugin\parse-rss". Cely projekt nájdeme na adrese http://mirkes.yweb.sk/release-0.9.rar
    1895.94 kB00:35, 15 Jan 2009mirkesActions
     parse-rss - compiled plugin.rar
    (skompilovaná verzia) Plugin do nutch-u. Pred použitím je potrebné vykonať kroky v inštalačnom postupe.
    1806.98 kB00:36, 15 Jan 2009mirkesActions
     Prezentacia.pdf
    Prezentácia
    262.27 kB00:42, 15 Jan 2009mirkesActions
     RSS_NUTCH_Plugin.docx
    Dokumentácia
    564.01 kB00:42, 15 Jan 2009mirkesActions
     RSS_NUTCH_Plugin.pdf
    Dokumentácia
    1110.34 kB00:42, 15 Jan 2009mirkesActions
     search-rss.JPG
    Search GUI
    297.38 kB00:47, 15 Jan 2009mirkesActions
     search-rss.rar
    Webová aplikácia, ktorá zobrazuje graficky obsah indexu.
    3.96 MB00:22, 15 Jan 2009mirkesActions
    Viewing 1 of 1 comments: view all
    Na tomto serveri je posunutý čas o hodinu vpred. edited 00:48, 15 Jan 2009
    Posted 00:47, 15 Jan 2009
    Viewing 1 of 1 comments: view all
    You must login to post a comment.
    Powered by MindTouch Core