Herzlich Willkommen im Blog! Link zur Hauptseite des Blogs

Hier berichten wir von den großen und kleinen Erlebnissen unserer Ausbildungsreise – von Exkursionen in alte und neue Bibliotheken, von Studienfahrten und Praktika in fernen und nicht ganz so fernen Städten, von Vorträgen, Konferenzen und natürlich dem Studienleben in München.

Herzlich Willkommen im Blog! Link zur Hauptseite des Blogs

Weltkarte




Dürfen wir vorstellen? OXPath!

Avatar of Student/in Student/in | 25. November 2018 | Gedankensprünge, Fachliches



Dürfen wir vorstellen? OXPath!

Ein Mensch programmiert an einem Laptop

Schon einmal etwas von OXPath gehört? Nein? Eigentlich kein Wunder, ist nämlich nicht besonders bekannt. Das aber völlig zu unrecht, denn diese Skriptsprache kann einem, besonders jemandem in einer Bibliothek, das Leben ungemein vereinfachen!

 

Die Idee

Oftmals kommt man in die Situation, eine Menge Metadaten gewinnen zu wollen, z.B. um einen Überblick über das Programm eines kleinen Verlags zu erhalten oder für's Katalogisieren großer Mengen frei verfügbarer Titel im Internet, ohne für jeden einzelnen fünf Mal klicken zu müssen. Dabei hilft OXPath - und wie?

 

Das Konzept

OXPath ermöglicht eine standardisierte Abfrage von Webseiten in HTML und das Speichern relevanter Information z.B. in eine XML-Datei. Die Voraussetzung ist, dass die Daten, die man gewinnen will, auch standardisiert vorliegen. Um das ganze ein bisschen greifbarer zu machen, hier ein Beispiel:

An der UB Regensburg wird die Bayerische Bibliographie speziell für die Oberpfalz & Regensburg betreut. Interessant ist hier auch das Portal www.heimatforschung-regensburg.de , das eine eBibliothek mit ein paar hundert freien Aufsätzen enthält. Um das Katalogisieren dieser Artikel leichter zu machen konnte ich OXPath nutzen und die kompletten Metadaten
samt Link zum Dokument mal in eine Datei schmeißen. Mit einem Stylesheet (in XSLT) kann man das noch in eine halbwegs schöne Tabelle werfen und spart sich eine Menge Zeit beim Bearbeiten!

Wenn man das kompliziertere Zeug weglässt sieht die Überseite der eBibliothek in HTML so aus:

<div id="container">

    <p>
        <a href="LinkZumErstenEintrag">
            <em>Erster Eintrag</em>
        </a>
    </p>
    <p>
        <a href="LinkZumZweitenEintrag">
            <em>Zweiter Eintrag</em>
        </a>
    </p>
</div>

Und nach einem Klick auf einen Eintrag so:

<div id="content">
    <p>HierStehtDerTitel</p>
    <a href="Link">UndHierDerLink</a>
</div>
          


Etwas vereinfacht würde ein entsprechendes Skript zum Sammeln z.B. von Titel und Link in OXPath so aussehen:

doc('http://www.heimatforschung-regensburg.de/view/type/library.default.html')
(Um die eBibliothek aufzurufen)

//div[@id="container"]//p/a/em/{click/}
(Um auf jeden Eintrag in der eBibliothek zu klicken und die entsprechende Seite aufzurufen  )

//div[@id="content"]:<Eintrag>
(Pro Eintrag einen Tag "Eintrag" in der Ausgabedatei.xml erzeugen)
        [//div/p[1]/text()[1]:<Titel>]
        (Speichere den Titel in der Ausgabedatei.xml im Tag "Titel")
        [//div/a[1]:<Dokumentenlink=string(@href)>]
        (Speichere den Link zum Dokument in der Ausgabedatei.xml im Tag "Dokumentenlink" )

 

Die Ausgabedatei in XML würde dann etwa so aussehen:

<?xml version="1.1" encoding="UTF-8"?>

<results>
    <Eintrag>
        <Titel>HierStehtDerTitel</Titel>
        <Link>UndHierDerLink</Link>
    </Eintrag>
    <Eintrag>
        <Titel>HierStehtDerTitel</Titel>
        <Link>UndHierDerLink</Link>
    </Eintrag>
</results>
       


Und das war's! Natürlich war im echten Skript dann mehr Info dabei und die Pfade ein wenig komplizierter, das Prinzip bleibt dabei aber immer dasselbe: Gib den Pfad zu der Info an, die gespeichert werden soll und gib an, wie sie gespeichert werden soll.
(Natürlich kann es aber rechtliche Einschränkungen beim Harvesting solcher Datengeben, hier also aufpassen!)

 

Die Ausführung

Jetzt muss dieses Skript natürlich irgendwie gestartet werden. Das funktioniert nur auf einem Linux-Betriebssystem,
außerdem müssen eine aktuelle Java-Version und Firefox installiert sein.
Zusätzlich muss diese Datei heruntergeladen werden, die das Ausführen von OXPath ermöglicht:
sourceforge.net/projects/oxpath/files/oxpath-cli/
Zum Ausführen öffnet man ein "Terminal", fühlt sich kurz wie ein Hacker, und gibt dann folgendes Kommando ein:

java -jar oxpath-cli.jar   -q OXPathSkript.oxp        -f xml                   -o Ausgabedatei.xml
(OXPath mit Java starten)      (führe diese Datei aus)    (Speichern in XML)       (Speichern in diese Datei)


So, fertig, das Skript läuft und vor den eigenen Augen fängt der Computer an selbstständig zu werden, klickt auf jeden Eintrag, sammelt die Metadaten und das so lange, bis er alle hat. Die Ergebnisse sieht man dann in der Ausgabedatei.xml und kann sich das Leben leichter machen. Die Syntax zu lernen dauert nicht lange und außerdem gibt es ein fantastisches PDF mit allen Erklärungen.
Hilfreich ist auch, sich erstmal mit XPath (Sprache zum Navigieren in XML und HTML-Dokumenten) zu beschäftigen,
ein kurzes Tutorial gibt's auf w3schools.com.

 

Viel Spaß damit - eigene Erfahrungen gern in die Kommentare! :)

Luis

 

 

 

(Bild: CC0 Pixnio)

Keine Kommentare mehr möglich!

0 Kommentar(e)