RSS Tutorial: Newsfeeds und Content Syndication
Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1053180060.shtml
Was ist RSS? Abstrakt könnte man sagen: ein Textformat, das zum Austausch von Inhalten dient. Keine optimale Definition, daher ein anschaulicheres Beispiel:
Sie betreiben eine Internet-Seite mit News. Sie wollen, dass z.B. Ihre Headlines von anderen Websites übernommen werden können ("Die 10 neuesten Artikel von XYZ.com..:"). Kurz, Sie wollen in die "Content Syndication" bzw. Erstellung von "Newsfeeds" einsteigen. Dann sollten Sie RSS einsetzen.
RSS dient aber nicht nur zum Austausch von News. Praktisch jede Textinformation, die sich in Einheiten aufspalten lässt (also z.B. in verschiedene Artikel, Absätze, Headlines...) kann mit RSS verarbeitet werden. Neuere Versionen des Formats unterstützen sogar die Einbindung von Multimedia-Elementen.
Die Benutzerseite
Was können Sie als Benutzer also mit RDF anfangen?
Artikel übernehmen
Sie können Artikel anderer Webseiten in die eigene übernehmen. Je nachdem, wie freizügig der Autor dieser Artikel ist, können Sie komplette Texte übernehmen. Vielleicht erlaubt er aber auch nur, dass Sie die Titel seiner neuesten Artikel anzeigen und damit auf seine Website linken.
Eine solche "Content Syndication" kann durchaus Vorteile für Sie haben: Ihre Site wirkt aktuell und bekommt Portal-Charakter. Wenn Sie z.B. eine Seite für Perl-Programmierer betreiben, könnten Sie als Mehrwert zu den neuesten Artikeln anderer wichtiger Perl-Sites linken. Haben Sie keine Angst, dadurch Surfer zu verlieren - ein Surfer, der bei Ihnen einen guten Link gefunden hat, wird gerne zurückkommen, um weitere gute Links zu suchen.
Auch Weblogs machen gerne Gebrauch von diesen Möglichkeiten. Wenn z.B. zwei Autoren befreundet sind, können die beiden gegenseitig Artikel austauschen. Dadurch kann eine interessante doppelte Perspektive auf die geschilderten Ereignisse und Gedanken entstehen.
Natürlich ist auch der genau gegenteilige Effekt denkbar: wenn ich das Weblog von Markus lese, was interessiert mich dann das von Peter? Und wenn ich gerade auf einer Site über Haustiere bin, interessieren mich wahrscheinlich weder die aktuellen Börsennachrichten noch das Wetter in Alabama.
Kurz: wer Content Syndication betreibt, muss darauf achten, dass die zusammengeführten Inhalte auch wirklich zusammenpassen, sonst verkehrt sich die positive Wirkung ins Negative.
Zur Technik: wer RSS-Feeds einbauen will, verwendet dafür normalerweise Skriptsprachen wie PHP oder Perl. Stefan Fischer z.B. hat einen RSS-/RDF-Parser für PHP geschrieben. Im CPAN finden Sie das Modul XML::RSS für Perl, und auf XML.com wird neben grundsätzlichen Fakten zu RSS erklärt, wie man RSS mit Python verarbeitet.
RSS-Reader verwenden
RSS-Reader sind Programme, die Informationen aus verschiedenen RSS-Quellen zusammenfassen. Sie können solch ein Programm auf Ihrem PC installieren und sich die aktuellen Artikel von Websites anzeigen lassen, die Sie wirklich interessieren: z.B. von Wired, Slashdot und vielen privaten Weblogs.
Welche RSS-Reader gibt es? NewsMonster ist kostenlos, basiert auf Mozilla und erlaubt sogar, die News von Seiten zu übernehmen, die gar keine RSS-Newsfeeds anbieten.
Klipfolio 2.0 (siehe Screenshot) erlaubt ebenfalls die Integration von RSS-Feeds und ist kostenlos.
Vielleicht fragen Sie sich, wo genau die Vorteile von RSS-Readern liegen. Schließlich können Sie ja auch nacheinander Wired, Slashdot und die fünf privaten Weblogs besuchen, die Sie täglich lesen. Sie haben Recht. RSS-Reader bieten den einzigen Vorteil, dass sie die Informationen an einem Platz, in einem Programm zusammenfassen.
Die Anbieterseite
Sie könnten nun natürlich auch auf die Idee kommen, Ihre eigenen Inhalte via RSS verfügbar zu machen. Ein guter Einfall, denn:
- so erhöhen Sie die Reichweite Ihrer Artikel - sie werden einfach von mehr Personen gelesen.
- Sie verbessern Ihre Reputation
- wahrscheinlich werden Ihre Zugriffszahlen steigen
Also, ran da! Das Problem für Sie als Anbieter: es gibt verschiedene Versionen von RSS, die Sie kennen müssen. Daher nun:
Eine kleine Geschichtsstunde
Versionen? Ja, leider. Es gibt diverse Unterversionen von RSS, die teilweise erhebliche Unterschiede aufweisen.
RSS 0.90 wurde vor einigen Jahren von Netscape definiert. Es sollte dafür verwendet werden, die Inhalte von großen Portal-Seiten auszutauschen.
Irgendwann verlor Netscape das Interesse an der Geschichte. Eine andere Firma, UserLand, entschloss sich jedoch, mit RSS weiterzuarbeiten. RSS 0.91 entstand. Es war einfacher zu verwenden als sein Vorgänger und diente zum Austausch simpler Textinformationen. Offiziell ist die Version 0.91 zwar nicht mehr aktuell, aber trotzdem noch recht populär. Verwenden Sie sie für einfache Aufgaben.
UserLand entwickelte das Format weiter, die Versionen 0.92, 0.93, 0.94 und 2.0 entstanden. Wenn Sie komplexere Inhalte zusammenführen wollen, verwenden Sie also eine dieser aktuelleren Spezifikationen. Vorzugsweise direkt die Version 2.0, denn die kann am meisten und ist der offizielle Standard.
So weit, so gut - komplizierenderweise kam zwischendurch aber noch ein weiterer Spieler aufs Feld: die "RSS-DEV Working Group". Sie entwickelte das ursprüngliche RSS 0.90 basierend auf XML und RDF weiter und nannte das Ergebnis "RSS 1.0". RSS 1.0 kommt also von einem anderen Hersteller (de facto sogar eher von einer Art Konsortium) als die anderen RSS-Versionen und weist im Quellcode viele Unterschiede auf. Verwenden Sie das Format, wenn Sie sowieso mit RDF arbeiten wollen oder müssen.
Funktionsweise von RSS 0.91
Wir werden uns im Folgenden mit RSS 0.91 beschäftigen. Diese Version von RSS ist immerhin so aktuell, dass sie von gebräuchlichen Readern und Scripts verstanden wird, ohne dabei unnötig komplex zu sein. Gleichzeitig illustriert sie das dahinterstehende Konzept recht gut und ist aufwärtskompatibel zu RSS 2.0, sodass ein Umstieg nicht allzu schwer fallen dürfte.
Vorweg: RSS basiert auf XML. Daher muss jedes RSS-Dokument wohlgeformtes XML sein.
Beispiel-Code
So könnte z.B. eine RSS-Datei aussehen, die zwei Artikel von AboutWebDesign enthält:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="0.91">
<channel>
<title>AboutWebDesign.de</title>
<link>http://www.aboutwebdesign.de</link>
<description>Online-Magazin für Webmaster</description>
<language>de-de</language>
<copyright>Copyright 2000-2003, AboutWebDesign.de.</copyright>
<managingEditor>redaktion@aboutwebdesign.de</managingEditor>
<webMaster>webmaster@aboutwebdesign.de</webMaster>
<image>
<title>On air @ AWD</title>
<url>http://www.aboutwebdesign.de/awd/pictures/teaser/onair.jpg</url>
<link>http://www.aboutwebdesign.de</link>
<width>100</width>
<height>100</height>
<description>Informationen und Artikel für Webmaster.</description>
</image>
<item>
<title>Suchmaschinen: Quelltext effizient strukturieren</title>
<link>http://www.aboutwebdesign.de/awd/content/1052328469.shtml</link>
<description> Suchmaschinen: Quelltext effizient strukturieren
Google & Co. versuchen, die Wichtigkeit Ihrer Inhalte einzuordnen. Wie sorgen Sie dafür, dass wichtige Teile Ihrer Website auch als solche erkannt werden?</description>
</item>
<item>
<title>Was sind das Semantic Web und RDF?</title>
<link>http://www.aboutwebdesign.de/awd/content/1051625968.shtml</link>
<description>Das Internet, so wie wir es heute kennen, hat ein Problem: nicht zu bändigende Unordnung. Suchmaschinen versuchen zwar, Ordnung ins Chaos zu bringen. Wie aber jeder weiß, haben auch moderne Suchmaschinen so ihre Probleme mit der Klassifizierung von Suchergebnissen: welche Seite liefert nun das, was der Suchende eigentlich lesen möchte?
</description>
</item>
</channel>
</rss>
Grundstruktur des Codes
<?xml version="1.0" encoding="ISO-8859-1" ?> ist obligatorisch - diese Zeile sagt dem Parser, dass hier XML vorliegt.
Jedes RSS-Dokument wird umschlossen von <rss> und </rss>. Als Attribut sollten Sie angeben, mit welcher RSS-Version Sie arbeiten. In unserem Beispiel ist das 0.91.
Channels
Hierarchisch unter dem rss-Element steht das channel-Element. Davon muss es in jedem RSS-0.91-Dokument genau eins geben. Ein Channel an sich ist eine Art Container für verschiedene Artikel. Diese Artikel werden im Folgenden als item-Elemente spezifiziert.
Zuvor jedoch können bzw. müssen Sie den Channel etwas genauer beschreiben - title, link, description und image sollen laut Spezifikation angegeben werden, andere Elemente sind optional.
Die Bedeutung der in unserem Beispiel verwendeten Elemente dürfte sich wohl aus dem Namen erschließen lassen ;-). Eine komplette Liste aller hier erlaubten Tags liefert die UserLand RSS 0.91-Spezifikation.
Eine Liste mit Sprachcodes für <language> finden Sie hier.
Bilder
Zur einem vollständigen Channel gehört ein image-Tag. Hiermit können Sie ein kleines Logo oder eine Grafik angeben, die über Ihren Inhalten angezeigt wird. Das Unter-Element url beschreibt, wo das Bild im Internet zu finden ist.
title korrespondiert mit dem alt-Attribut in XHTML, und mit width und height können Sie optional Breite und Höhe des Bildes angeben.
Standardmäßig wird das Bild anklickbar, d.h. als Link, dargestellt. Die Zieladresse dieses Links wird in link angegeben, und description dient als Titel des Links.
Items
Die Items schließlich sind die einzelnen Artikel, die vom RSS-Reader angezeigt werden. Ein Channel darf beliebig viele enthalten.
Zur Angabe eines vollständigen Items müssen drei Unter-Elemente notiert werden: title, description und link. Auch hier dürfte sich deren Bedeutung wohl aus dem Beispiel erschließen lassen.
Selbst RSS-Feeds erzeugen
Wenn Sie selbst RSS-Feeds anbieten wollen, können Sie diese natürlich manuell erstellen. Davon ist aber - welch Überraschung - abzuraten. Erstens ist das fehleranfällig, zweitens ist es meist unnötige Arbeit. Zumindest dann, wenn Sie ohnehin schon ein Redaktionssystem verwenden.
Dann nämlich können Sie für Ihre einzelnen Artikel ein item-Template erstellen und einfach die fünf oder sechs (vielleicht auch deutlich mehr) aktuellsten Artikel mit diesem Template in das channel-Rahmengerüst einbetten.
Fazit
RSS-Feeds sind interessant - sowohl in Bezug auf ihre Nutzung als auch aus Sicht des Content-Providers. Wenn Sie ohnehin ein CMS verwenden, können Sie die RSS-Erstellung ja einfach einmal ausprobieren - was haben Sie schon zu verlieren? Die Chancen sind jedenfalls nicht schlecht, dadurch einige loyale Benutzer hinzuzugewinnen.
Zum Weiterlesen...
Wenn Sie sich über RSS 0.91 hinausgehend mit RSS beschäftigen wollen, empfehlen wir Ihnen zunächst einmal die Userland-Spezifikationen für die neueren Versionen:
Wenn Sie sich dagegen für RSS 1.0 interessieren, so ist z.B. der Artikel Writing RSS 1.0 von O'Reilly interessant. Die offizielle Spezifikation dazu finden Sie hier.
Für weitere Informationen empfehlen wir eine Google-Suche.