Open Source im professionellen Einsatz
Linux-Magazin 01/2005

RSS-Newsfeeds lesen mit Tcl, Snit und TDOM

Appetithäppchen

Newsticker, Web-Blogs und andere Informationssysteme verwenden gerne das RSS-Format, um kurze Nachrichten in standardisierter Form an die Interessenten zu verteilen. Diese News-Schnipsel lassen sich bestens mit Tcl und der objektorientierten Erweiterung CZRSS verarbeiten.

494

Kleine orange Kästchen, die von den weißen Lettern XML oder RSS geziert werden, finden sich auf immer mehr Webseiten. Der Link dahinter führt zu einer Datei, die eine Zusammenfassung der jüngsten News enthält oder über Änderungen der Seite informiert. Mit Hilfe dieser Technik tauschen Portale untereinander Neuigkeiten aus, zum Beispiel zeigt Slashdot auch Freshmeat-Meldungen (Abbildung 1). Websites wie [rss-scout.de] oder [rss-verzeichnis.de] geben eine Übersicht über mehrere tausend Newsfeeds, von der Tagesschau bis zum örtlichen Turnverein. Ein RSS-Feed lässt sich sogar für fremde Sites nachrüsten - wie das geht, erklärt der "Perl-Snapshot" dieser Ausgabe.

RSS-Inhalte eignen sich bestens als Input für eigene Software. Ein Tcl-Programm kann die Informationen extrahieren und in die gewünschte Form wandeln oder in einer grafischen Oberfläche darstellen. Es gibt mehrere Tcl-Erweiterungen zum Lesen von RSS, sie basieren entweder auf einem XML-Parser oder sind wie das Redland-Framework[15] komplett in C geschrieben. Für diesen Artikel entstand ein weiteres Paket namens CZRSS[17] auf Basis von Jochen Loewers XML- Erweiterung TDOM[12], Code von Tcl-Guru David Gravereaux[16] und Objektorientierung mit Snit[9].

XML-Formatdschungel

Die Firma Userland verwendet seit 1997 einfache XML-Dateien für Nachrichtenzusammenfassungen[1]; ihren Standard nennt sie RSS (Rich Site Summary), Version 0.91. RSS-Files enthalten Informationen über eine Webseite: URL, Logo, Beschreibung sowie eine Reihe von Nachrichten. Jede einzelne Meldung besteht aus einem Titel, einer kurzen Beschreibung sowie einem Link auf die passende Webseite. Diese Dateien werden wie normales HTML vom Webserver verteilt. Der Mechanismus heißt irreführenderweise Newsfeed. Das suggeriert, dass die Dateien automatisch an interessierte Benutzer verteilt würden (Push-Technik). Der Client muss sie jedoch selbst abholen (Pull).

Die Weiterentwicklung des XML-Schemas wird von Userland kontrolliert. Deren Entscheidungen stießen aber nicht immer auf Zustimmung, ein unabhängiges Gremium definierte daher das RDF Site Summary[2] (Version 1.0). Userland ist inzwischen auch nicht untätig geblieben und stellte als Nachfolger von RSS 0.91 das Really Simple Syndication Scheme[3] vor (RSS 2.0). Um beliebige Newsfeeds zu lesen, muss ein Client daher mindestens diese drei XML-Schemata beherrschen. Neue Newsfeeds sollten RDF oder RSS 2.0 verwenden. Mit Atom[5] etabliert sich derzeit ein weiteres Schema für Zusammenfassungen, die Clients müssen daher künftig mit noch mehr Schemata umgehen.

Tcl-Hülle

Das neue RSS-Paket für Tcl soll all diese Details vor dem Programmierer verbergen und ihm die Informationen so bequem anbieten wie von Tk-Widgets gewohnt. Diese arbeiten objektorientiert:

% label .l -text "Hallo Welt"
% .l cget -text
Hallo Welt


Die bekannteste OO-Erweiterung ist sicherlich Incr Tcl, sie war Thema der ersten Folge der Federlesen-Reihe[8]. Incr Tcl bringt Tcl-Programmierern ein Objektmodell - wie von C++ oder Java bekannt - mit Vererbung, Zugriffsschutz und ähnlichen Mechanismen. Einen einfacheren Ansatz verfolgt Snit[9] von Will Duquette. Diese reine Tcl-Erweiterung ist inzwischen Bestandteil der Tcllib[10] und in aktuellen Linux-Systemen bereits enthalten (siehe auch Kasten "Das Neueste").

Abbildung 1: Die Newsseite Slashdot blendet auch Meldungen von Freshmeat ein (rechts). Das Portal holt diese Informationen im standardisierten RSS-Format von der Freshmeat-Seite.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Textarbeit

    Ob als Ascii-Editor oder für interaktive Anzeigen mit verschiedenen Schriften und Bildern - das Textwidget von Tk ist sehr flexibel einsetzbar. Diese Federlesen-Folge erklärt das Universalwidget anhand eines einfachen Editors und eines Readers für RSS-Dateien.

  • Libxml2-XPath: Fehlerhafte Node-Allokation erlaubt Heap-Overflow
  • Taufrischer Federschmuck

    Tcl 8.5 steht kurz vor der Fertigstellung und bringt neben 50 Verbesserungen eine echte Überraschung mit: Die Basissprache erhält einen neuen Datentyp. Auch das eindrucksvolle Tile-Paket reift zusehends. Mit ihm nähert sich das Aussehen von Tk-GUIs dem anderer Widget-Bibliotheken.

  • Angler-Paradies

    Wer in seinen Programmen interessante Daten aus Webseiten weiterverarbeiten will, braucht einiges Geschick beim Herausfischen dieser Inhalte aus dem Sumpf von Formatierungsinfos, Abbildungen und interaktiven Abfragen. Tcl und eine Hand voll Module verhelfen ihm zu Angler-Ruhm und -Ehre.

  • Datenschwein

    So richtig kam das semantische Web bisher nicht in die Gänge. Das Simile-Projekt versucht es anzuschieben und bietet dafür eine ganze Reihe Software-Tools, die bestehende Websites mit semantischen Informationen anreichern. Vollautomatisch geht es aber nicht.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.