1 / 16

Web Mining Übung Jobo und DOM

Web Mining Übung Jobo und DOM. Wintersemester 2006/2007 Universität Hildesheim. Thomas Mandl Information swissenschaft Universität Hildesheim mandl@uni-hildesheim.de. Web Crawling mit Jobo. Jobo open source Java Crawler Start aus Eclipse Bedienung per GUI als download Manager Struktur

Download Presentation

Web Mining Übung Jobo und DOM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web MiningÜbung Jobo und DOM Wintersemester 2006/2007 Universität Hildesheim Thomas Mandl InformationswissenschaftUniversität Hildesheim mandl@uni-hildesheim.de

  2. Web Crawling mit Jobo • Jobo • open source Java Crawler • Start aus Eclipse • Bedienung per GUI als download Manager • Struktur • net.matuschek.examples.LogUrl Start von der Kommandozeile • net.matuschek.jobo.Swing... Klassen für GUI

  3. Struktur Jobo net.matuschek.http.HttpDocManager processDocument(HttpDoc doc) net.matuschek.Http.HttpDocument • http Header • getURL() net.matuschek.Spider.WebRobot • Crawling Logik • HttpDocManager als Eigenschaft • work() net.matuschek.Html.HtmlDocument • getLinks() • getElements (String) • Strukturiertes Modell (DOM) aus Seite wird erstellt

  4. Aufgabe HTTPDokument • Ausgabe der gefundenen URLs und Header • Ausgangspunkt • Applikation net.matuschek.examples.LogUrl Start von der Kommandozeile • Benutzt DocumentManager URLLogger • Im DocumentManager Änderungen einfügen • Z.B. wr.write(httpDoc.getContent().length + " ");wr.write(httpDoc.getHttpHeaders().toString());

  5. HTMLDokument • Analyse von HTML Eigenschaften in einem HTTPDocumentManager • Wie viele Links enthalten die Seiten? • Wie viele Tabellen enthalten die Seiten? if (httpDoc.isHTML()) { HtmlDocument htmlDoc = new HtmlDocument(httpDoc.getURL(),new String (httpDoc.getContent())); wr.write(httpDoc.getURL().toString() + " "); String s = " " + htmlDoc.getLinks().size(); wr.write(s); s = " " + htmlDoc.getElements ("table").size(); wr.write(s); System.out.println (htmlDoc.getElements ("table").size() + " "); System.out.println (new String (httpDoc.getContent()));

  6. Exkurs: Document Object Model • HTML-Seite • Browser-Ansicht • HTML Code • DOM • DOM • „standardisiertes Objektmodell und API fuer die Verarbeitung von XML- HTML- und CSS-Dokumenten.“ • „Satz von Schnittstellen, der ein Dokument in einer Baumstruktur darstellt. „ http://paris.cs.uni-magdeburg.de/lehre/sommer-02/pro-xml/rud_s.pdf

  7. DOM Beispiel

  8. DOM Beispiel

  9. Exkurs: Document Object Model • Interfaces • Document – oberster Knoten • Element, • Attr - kann Kinder vom Typ Text oder EntityReference haben. • Funktionen • getNodeName () • getNodeValue () • getChildNodes () • Tidy Parser erzeugt in Jobo für uns schon das DOM in einem HTMLDocument

  10. Durchlaufen von Elementen Iterator it = ( doc.getRootElement().getChildren()).iterator(); int i = 0; while( it.hasNext()) { Element current = ( Element ) it.next(); Betrachten von Elementen Element el = (Element)links.elementAt(i); if (el.getNodeName().equalsIgnoreCase ("a") ) el.getFirstChild().getNodeValue ());

  11. DOM in Jobo • Erzeugen von Vektoren mit bestimmten Elementen Vector links = htmlDoc.getLinks(); Vector tables =htmlDoc.getElements("tables"); Vector titles = new Vector(); extractElements(getDomDoc().getDocumentElement() , "title", titles);

  12. DOM in Jobo • Zugriff auf Knoten (Elemente) if (titles.size() == 0 ) Element e = (Element)titles.elementAt(0); Vector links = getLinks(); for (int l=0; l<links.size() ;l++) { URL tempUrl =(URL)links.elementAt(l); if (tempUrl.getFile().endsWith("pdf")

  13. HTMLDokument • Auslesen der Eigenschaften • Welchen Titel hat die Seite? if (titles.size() != 0 ) { try { Element e = (Element)titles.elementAt(0); if (e.getFirstChild() != null) s = e.getFirstChild().getNodeValue (); wr.write(" " + s); } catch (Exception e) { ... }

  14. Ergebnis • http://www.matuschek.net/blog/ 143 2 Blog 0 • http://www.matuschek.net/sitemap/ 205 1 Sitemap 0 • http://www.matuschek.net/search/ 15 2 Suche 0 • http://www.matuschek.net/impressum/ 16 1 Impressum 0 • http://www.matuschek.net/travel/ 45 1 Reisen 0 • http://www.matuschek.net/freizeit/ 24 1 Freizeit 0

  15. HTMLDokument • Analyse von Links • Wohin führen die Links ? • Wie lange sind Link-Labels in verschiedenen Seiten? • Hinzufügen neuer Funktionen in HtmlDocument • getTitle () • getExternalLinks ()

More Related