Thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen? (47 answers)
Opened by vitopetre at 2010-04-11 23:27

murphy
 2010-04-13 16:11
#135949 #135949
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Ich würde zur Bestimmung der nötigen Informationen drei Quellen nutzen: Den RSS-Feed, die HTML-Seiten der einzelnen Artikel und die XML-Metainformationsdateien der einzelnen Artikel.

Grobes Vorgehen:
  • RSS-Feed laden und per XML-Parser in einen Dokumentbaum verwandeln.
  • Alle <rss:item>-Tags aus dem RSS-Dokument extrahieren.
  • Aus jedem Eintrag den <rss:link>-Tag extrahieren, die entsprechende Seite laden und per HTML-Parser in einen Dokumentbaum verwandeln.
  • Aus jedem der HTML-Dokumente den <link rel="metadata">-Tag extrahieren, die entsprechende XML-Datei laden und per XML-Parser in einen Dokumentbaum verwandeln.
  • Die gewünschten Informationen über jeden Artikel aus Metadatendokument, RSS-Dokument und HTML-Dokument (in dieser Prioritätsreihenfolge) zusammensuchen.


Mögliche Quellen für die gewünschten Informationen:
  • Quote
    wer die Autoren sind (und dabei jeden einzeln aufzählen)

    • <creator>-Tags des Metadatendokumentes
    • <description>-Tag des RSS-Eintrages, Inhalt ist aber kompliziert mit regulären Ausdrücken zu parsen, da sehr irregulär ;-)
  • Quote
    wie der Artikel heißt

    • <title>-Tag des Metadatendokumentes
    • <title>-Tag des RSS-Eintrages
    • <title>-Tag des HTML-Dokumentes
  • Quote
    welche Art von Artikel es ist (Editorial, Report, Opinion, etc.)

    • <type resource-type="work">-Tag des Metadatendokumentes
    • <description>-Tag des RSS-Eintrages, erstes Wort ist leicht per regulärem Ausdruck extrahierbar
  • Quote
    welche DOI der Artikel hat

    • <identifier uri-type="DOI">-Tag des Metadatendokumentes
    • <meta name="DOI">-Tag des HTML-Dokumentes
  • Quote
    wenn möglich das Abstract des Artikels ausspucken

    • Textinhalt des ersten Absatzes nach einer Überschrift mit dem Inhalt "Abstract" im HTML-Dokument.
  • Quote
    wie die Zeitschrift heißt

    • <serial-name>-Tag des Metadatendokumentes
    • <meta name="description">-Tag des HTML-Dokumentes, könnte aber auch falsche Informationen liefern
    • Inhalt der ersten Überschrift im HTML-Dokument, könnte aber auch falsche Informationen liefern
  • Quote
    um welche Ausgabe der Zeitschrift es sich handelt

    • <volume>-Tag des Metadatendokumentes
  • Quote
    um welche Nummer der Zeitschrift es sich handelt

    • <issue>-Tag des Metadatendokumentes
  • Quote
    in welchem Jahr diese Ausgabe erschienen ist

    • <date date-type="publication">-Tag des Metadatendokumentes, Jahreszahl lässt sich leicht mit einem regulären Ausdruck extrahieren
  • Quote
    welcher Link zu dieser Ausgabe führt

    Die URL des Artikels kann aus dem
    • <identifier uri-type="URL">-Tag des Metadatendokumentes oder
    • <link>-Tag des RSS-Eintrages

    gewonnen werden. Um einen Link zur entsprechenden Ausgabe der Zeitschrift zu erzeugen, könnte man mit etwas Glück einfach die letzten Pfadelemente der URL abschneiden — sicher ist diese Methode aber nicht.
  • Quote
    welche ISSN diese Ausgabe hat

    • <issn>-Tag des Metadatendokumentes


Da hier komplizierte Dokumentbäume im Spiel sind, würde ich alle Datenextraktionsschritte mit Hilfe von XPath erledigen, die nötigen Ausdrücke sind, im Gegensatz zu funktional ähnlichen regulären Ausdrücken, allesamt kaum eine Zeile lang! Für die Nachbearbeitung einzelner Taginhalte sind reguläre Ausdrücke aber das Mittel der Wahl :-)
When C++ is your hammer, every problem looks like your thumb.

View full thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen?