web mining Übung jobo und dom

16
Web Mining Übung Jobo und DOM Wintersemester 2006/2007 Universität Hildesheim Thomas Mandl Informationswissenschaft Universität Hildesheim [email protected]

Upload: jasper-browning

Post on 30-Dec-2015

47 views

Category:

Documents


0 download

DESCRIPTION

Web Mining Übung Jobo und DOM. Wintersemester 2006/2007 Universität Hildesheim. Thomas Mandl Information swissenschaft Universität Hildesheim [email protected]. Web Crawling mit Jobo. Jobo open source Java Crawler Start aus Eclipse Bedienung per GUI als download Manager Struktur - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web Mining Übung  Jobo und DOM

Web Mining

Übung

Jobo und DOM

Wintersemester 2006/2007

Universität Hildesheim

Thomas Mandl InformationswissenschaftUniversität Hildesheim [email protected]

Page 2: Web Mining Übung  Jobo und DOM

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

Page 3: Web Mining Übung  Jobo und DOM

3

Struktur Jobo

net.matuschek.http.HttpDocManager

processDocument(HttpDoc doc)

net.matuschek.http.HttpDocManager

processDocument(HttpDoc doc)

net.matuschek.Spider.WebRobot

• Crawling Logik•HttpDocManager als

Eigenschaft•work()

net.matuschek.Spider.WebRobot

• Crawling Logik•HttpDocManager als

Eigenschaft•work()

net.matuschek.Html.HtmlDocument

•getLinks()•getElements (String)• Strukturiertes Modell (DOM)

aus Seite wird erstellt

net.matuschek.Html.HtmlDocument

•getLinks()•getElements (String)• Strukturiertes Modell (DOM)

aus Seite wird erstellt

net.matuschek.Http.HttpDocument

• http Header•getURL()

net.matuschek.Http.HttpDocument

• http Header•getURL()

Page 4: Web Mining Übung  Jobo und DOM

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());

Page 5: Web Mining Übung  Jobo und DOM

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()));

Page 6: Web Mining Übung  Jobo und DOM

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

Page 7: Web Mining Übung  Jobo und DOM

7

Page 8: Web Mining Übung  Jobo und DOM

8

DOM Beispiel

Page 9: Web Mining Übung  Jobo und DOM

9

DOM Beispiel

Page 10: Web Mining Übung  Jobo und DOM

10

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

Page 11: Web Mining Übung  Jobo und DOM

11

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 ());

Page 12: Web Mining Übung  Jobo und DOM

12

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);

Page 13: Web Mining Übung  Jobo und DOM

13

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")

Page 14: Web Mining Übung  Jobo und DOM

14

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) {

...

}

Page 15: Web Mining Übung  Jobo und DOM

15

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

Page 16: Web Mining Übung  Jobo und DOM

16

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 ()