Transcript Le RSS

Les flux RSS
1
Présentation du format RSS
• RSS = "Rich Site Summary”
ou "Real Simple Syndication”
• C’est une manière de décrire le contenu d'un site
– événements
– articles
– plus généralement toute page qui présente un
contenu mis à jour de manière chronologique
• RSS est un langage de description de page
(comme le html, ou le xml – dont il est dérivé)2
Historique (1)
• Mars 1999, Netscape a publié RSS 0.90.
– Il ne s'agissait pas d'un format de syndication,
mais d'un format fournissant le résumé d'un site Web
– A l'époque, RSS ne signifiait pas encore Really Simple
Syndication, mais Rich Site Summary
– RSS 0.90 était basé sur un format complexe RDF
(Resource Description Framework )
• En juillet 1999 Netscape sort RSS 0.91
– basé uniquement sur XML
– avec une DTD permettant d'utiliser de nombreuses
entités
3
Historique (2)
• En juin 2000 Userland sort un RSS 0.91
– il existedonc deux versions différentes de RSS 0.91.
(celle de Netscape et celle de Userland)
– La différence est que celle de Userland ne propose pas
de DTD. Techniquement, le RSS 0.91 de Userland n'est
qu'une version moins complète que celle de Netscape.
• En décembre 2000, le RSS-DEV working group
sort RSS 1.0.
– n’est plus basée sur du XML, mais à nouveau sur RDF.
– Signification de RSS = RDF Site Summary
4
Historique (3)
• Au cours de ce même mois de décembre 2000,
Userland a publié RSS 0.92
– censé remplacer le RSS 0.91 de Userland
– la numérotation des versions de RSS devient encore
plus confuse puisque RSS 0.92 est une version plus
récente que RSS 1.0.
• En avril 2001, Userland a sorti une ébauche de
RSS 0.93
– version jamais finalisée qui n'a donc jamais remplacé
le RSS 0.92 de Userland.
5
Historique (4)
• En septembre Userland 2002, publie RSS 2.0,
– Userland a choisi de passer directement le numéro de
version à 2.0 puisque le RSS-DEV working group avait
déjà utilisé le numéro de version 1.0 pour leur RSS 1.0
basé sur RDF.
• En novembre 2002, puis en janvier 2003, Userland a
modifié les spécifications de RSS 2.0.
– Bien que ces spécifications soient différentes, toutes sont
présentées comme étant RSS 2.0.
6
Historique (5)
• Il a règné (et il règne toujours) une grande
confusion entre la signification et les versions
de RSS
• Aujourd'hui, les formats les plus utilisés sont
– RSS 1.0 basé sur du RDF
– RSS 2.0 basé sur du XML avec un léger avantage
pour ce dernier
C'est cette version qui est présentée dans ce cours.
7
Comment RSS est utilisé aujourd'hui
• Le concept de base est de réaliser en temps
réel un fichier normalisé en XML,
susceptible d’être lu (« parsé ») par des
machines extérieures.
• Ce fichier contient des informations
simplifiées (Simple Syndication) relatives aux
plus récentes modifications du site
• La syndication est le fait de signaler aux autres
que vous avez du contenu à les faire
“consommer” (feed)
8
A quoi sert RSS
• A signaler à d’autres que des pages d’un site ont
été modifiées ou ajoutées.
• A décrire succinctement et de façon normalisée le
contenu de ces fameuses pages.
• Permet ainsi à d’autres personnes de récupérer ces
données et de les insérer à sa façon dans son
système d’information.
[NB l'utilisateur ne PEUT pas en modifier le
contenu, il ne peut que mettre en page].
9
Format d’un document RSS 2.0 (1)
• Au niveau le plus élevé
– un élément <rss>, avec un attribut obligatoire appelé
version.
S'il est conforme à cette spécification, l'attribut
version doit être 2.0.
• Subordonné à l'élément <rss>
– un seul élément <channel>, qui contient des
informations à propos du channel (métadonnées) et de
ses contenus
10
Format d’un document RSS 2.0 (2)
• Eléments obligatoires de <channel>
– <title> : Le nom du channel - manière dont les gens
appellent votre service.
Si un site Web en HTML contient les mêmes
informations que le fichier RSS, le titre du channel
devrait être le même que celui du Web.
– <link> : URL du site Web correspondant au channel.
– <description> Expression qui décrit le channel.
11
Format d’un document RSS 2.0 (3)
• Eléments facultatifs de <channel>
– <language> : langue dans laquelle le channel est écrit.
– <copyright> copyright du contenu du channel.
– <managingEditor> email du responsable du contenu
– <webMaster> : email du responsable technique
– <pubDate> : date de publication de ce contenu
– <lastBuildDate> La dernière fois que le contenu du
channel a été modifié
– <category> Spécifiez une ou plusieurs catégories
12
Format d’un document RSS 2.0 (4)
• Eléments facultatifs de <channel> (suite)
– <ttl> : « time to live » nombre de minutes durant
lequel un channel peut être maintenu en cache avant
d'être rafraîchi
– <image> : image GIF, JPEG ou PNG qui peut être
affichée avec le channel. Contient 3 sous-éléments
obligatoires et 3 sous-éléments facultatifs
• obligatoires : <url> <title> <link>
• facultatifs : <width> <height> <description>
– <rating> note « PICS » pour ce channel.
13
Format d’un document RSS 2.0 (5)
• Un channel peut contenir n'importe quel nombre
de <item>s.
• <item> représente un ‘ article ’ du document RSS
Tous les éléments d'un item sont facultatifs,
– <title> <link> <description> <author> <category>
<comments>
– <enclosure> Décrit un objet media attaché à l'item et
possède 3 attributs obligatoires
• <url>
• <length> taille en octets
• <type> un standard type MIME.
14
Exemples de document RSS (1)
• Site web d'actualités fournissant la liste de leurs
derniers articles parus
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Exemple de site d'informations</title>
<description>Ceci est un exemple de site d'informations</description>
<lastBuildDate>Wed, 27 Jul 2005 00:30:30 -0700</lastBuildDate>
<link>http://news.example.com/</link>
<item>
<title>La nouvelle du jour: Les oiseaux volent</title>
<pubDate>Tue, 19 Jul 2005 04:32:51 -0700</pubDate>
<link>http://news.example.com/artcle/553</link>
</item>
<item>
<title>Le feu ça brûle</title>
<pubDate>Sun, 15 May 2005 13:02:08 -0700</pubDate>
<link>http://news.example.com/artcle/552</link>
</item>
</channel>
</rss>
15
Exemples de document RSS (2)
• Les blogueurs utilisent RSS pour fournir à tous
une liste de leurs derniers messages.
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Blog de Michel Martin</title>
<description>Il s'agit du blog de Michel Martin</description>
<lastBuildDate>Sun, 15 May 2005 13:02:08 -0500</lastBuildDate>
<link>http://michel-martin.example.net/</link>
<item>
<title>Depuis le temps que je bloggue...</title>
<pubDate>Sun, 15 May 2005 13:02:08 -0500</pubDate>
<link>http://joe-blow.example.net/log/21</link>
</item>
<item>
<title>Mauvais jour pour un chat noir</title>
<pubDate>Fri, 13 May 2005 13:13:13 -0500</pubDate>
<link>http://joe-blow.example.net/log/18</link>
</item>
</channel>
</rss>
16
Exemples de document RSS (3)
• une radio IP utilise RSS pour permettre aux
utilisateurs d'écouter ses émissions:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Hervé's IPradio Show</title>
<description>La meilleure émission de radio du net, avec Hervé</description>
<lastBuildDate>Mon, 15 Aug 2005 16:12:37 -0400</lastBuildDate>
<link>http://joe.ipradio.example.net/</link>
<item>
<title>La valise Hervé </title>
<pubDate>Mon, 15 Aug 2005 16:11:57 -0400</pubDate>
<enclosure url="http://joe.ipradio.example.net/show/55 » length="4487216"
type="audio/x-mp3"/>
</item>
<item>
<title>Les 10 minutes du peuple</title>
<pubDate>Mon, 1 Aug 2005 18:22:14 -0400</pubDate>
<enclosure url="http://joe.ipradio.example.net/show/53" length="3984215"
type="application/ogg"/>
</item>
</channel>
</rss>
•
NOTE : On parle parfois de Podcasting pour parler d'écoute de la radio sur internet. Il
est préférable de ne pas employer ce terme car il semble que Apple possède les droits
d'utilisation de ce terme. Ce mot appartient à Apple.
17
Exemples de document RSS (4)
• Les TV sur IP utilisent RSS pour permettrent aux
utilisateurs de voir leurs émissions en ligne.
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>L'émission de Sylvie</title>
<description>L'émission à ne pas rater</description>
<lastBuildDate>Tue, 23 Aug 2005 21:02:05 -0800</lastBuildDate>
<link>http://sylvietv.example.com/</link>
<item>
<title>Ca c'est fort !</title>
<pubDate>Tue, 23 Aug 2005 21:02:05 -0800</pubDate>
<enclosure url="http://katetv.example.com/show/4" length="1911146"
type="application/ogg"/>
</item>
<item>
<title>Encore moi</title>
<pubDate>Tue, 9 Aug 2005 13:12:12 -0400</pubDate>
<enclosure url="http://katetv.example.com/show/2" length="1894877"
type="video/mpeg"/>
</item>
</channel>
• la seule différence entre les exemples site d'informations/blogueur et IPRadio/IPTV
réside dans le fait que les 2 premiers utilisent l'élément <link> et que les 2 autres
utilisent l'élément <enclosure>
18
Comment marche RSS
• Cela dépend sa position :
– émetteur d’information = il faut générer un ou plusieurs
fils RSS d’information
– récepteur d’information = il faut savoir « parser » ces fils
RSS et les rediffuser
• La syndication bénéficie aux deux sites
– le site qui propose un contenu syndiqué peut voir son
contenu affiché sur de nombreux autres sites
– le site qui utilise ce contenu peut ajouter une plus-value
– la syndicalisation permet d'avoir un Web plus riche et
plus ouvert, plutôt que des sites isolés les uns des autres.
19
Emettre un fil RSS (1)
• Méthode manuelle.
le fichier RSS peut-être simplement créé avec un éditeur de
texte: il suffit d'entrer l'ensemble de la structure que l'on désire
syndiquer dans le fichier texte, et de mettre ce fichier à jour à
chaque fois que l'on veut ajouter un nouvel élément à syndiquer.
(fichier articles.rss)
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Le nom du flux syndiqué</title>
<link>http://www.le-site.com</link>
<description>Description du flux / du site</description>
<language>fr</language>
<item>
<title>Titre de l'article 1</title>
<link>http://www.le-site.com/article1.htm</link>
<description>Description du contenu 1</description>
</item>
<item>
<title>Titre de l'article 2</title>
<link>http://www.le-site.com/article2.htm</link>
<description>Description du contenu 2 </description>
</item>
</channel>
</rss>
20
Emettre un fil RSS (2)
• Méthodes automatiques
– Pour les sites faits "à la main", le moyen le plus simple
est de passer par des sites externes qui prennent en
charge cette création
Par exemple, en faisant un appel à l'outil en ligne
RSSify (après avoir ajouté quelques balises à votre page
d'origine), les sites voulant utiliser votre contenu
pourront trouver un fichier RSS généré
automatiquement à ce type d'adresse:
http://www.voidstar.com/rssify.php?url=http://www.lesite.com/articles.htm .
21
Emettre un fil RSS (3)
• Méthodes automatiques (suite)
– Pour les sites générés à partir d ’un CMS (Content
Management System) comme SPIP, la génération du RSS
est généralement une option à activer dans le CMS
– Pour les sites dynamiques (PHP, ASP, Perl), il faut écrire
ses propres fonctions pour générer le RSS
Des outils ont cependant été développés spécifiquement
pour générer facilement des fichiers RSS
• PHP : classe easyRSS, créée par Philippe Rodier
• Perl : Le module XML:RSS de Jonathan Eisenzopf
• ASP : le site ASPRSS propose gratuitement l'ensemble des
solutions tant pour générer que pour utiliser des flux RSS
22
Emettre un fil RSS (4)
• Voici un exemple très simple d'utilisation de cette
classe easyRSS
(fichier create-rss.php)
<?php
include('easyRSS.inc.php');
$myrss = new easyRSS();
$myrss -> channel("Titre", "http://www.le-site.com", "Description du site", "fr", "©2002 webmaster",
"[email protected]");
$myrss -> image("Titre", "http://www.le-site.com/logo.gif", "http://www.le-site.com/", 20, 20, "Description");
$myrss -> add_item("Titre de l'article 1", "http://www.le-site.com/articles.php?id=1");
$myrss -> add_item("Titre de l'article 2", "http://www.le-site.com/articles.php?id=2");
$myrss -> add_item("Titre de l'article 3", "http://www.le-site.com/articles.php?id=3");
$myrss -> textinput("Rechercher", "Rechercher sur le site :", "requete", "http://www.le-site.com/recherche.php");
$myrss -> save("articles.rss");
exit();
?>
23
Recevoir un fil RSS
• Un fil RSS est un fichier dont on connaît
l ’URL
Exemple : http://www.liberation.fr/rss.php
• Brut, ce fichier XML ne sert à rien, il faut
pouvoir le décoder, on a pour cela deux
techniques, répondant à deux besoins
différents : les agrégateurs de fils et
l'insertion de fils.
24
Les agrégateurs de fils (1)
• Ce sont des logiciels, disponibles gratuitement,
capables de lire des fichiers RSS
• Ils ressemblent à des utilitaires de messagerie, avec
une grande colonne à gauche contenant la liste des
fils auxquels on est abonné, et deux espaces à
droite, en haut la liste des 'items' du fil choisi, et en
bas, le contenu de l'item sélectionné
• Ils disposent, selon les modèles, de moteur de
recherche, de filtres performants, d’indicateurs de
veille, de différents gadgets…
25
Les agrégateurs de fils (2)
• L'agrégation consiste elle à s'abonner à un ou
plusieurs de fils de syndication.
• Les mises à jour sont détectées automatiquement par
l'agrégateur, et l'utilisateur est averti aussitôt, sans
avoir à visiter périodiquement les sites internet
• L'intérêt d'un agrégateur réside donc dans sa double
faculté à :
– prévenir de la mise à jour d'un site web automatiquement
– le faire pour un panel de sites entier.
26
Les agrégateurs de fils (3)
• Chaque fil est associé à un dossier qui contient
les différentes entrées du fil — le plus souvent
par ordre chronologique inverse
• Lorsqu'une nouvelle entrée est ajoutée au fil,
l'agrégateur le détecte et prévient l'utilisateur de
l'arrivée de ce nouveau contenu par quelque
moyen adapté.
• La détection de nouveaux éléments dans un fil est
cyclique ou réalisée à la demande de l'utilisateur.
27
Les agrégateurs de fils (4)
• Pour chaque élément (billet, article...) peut être
affiché un résumé ou son contenu complet.
• L'utilisateur peut être amené
– à quitter son agrégateur pour lire le contenu sur le site
d'où il a été tiré
– ou bien en faire l'entière lecture dans son logiciel.
• Contrairement à un client de messagerie, un
agrégateur est un dispositif de lecture passif. Il ne
permet pas de « répondre » aux éléments reçus
28
Quelques exemples d’agrégateurs
•
•
•
•
Wticker : http://www.wticker.org/mt
Sharpreader : http://www.sharpreader.net/
Feedreader : http://www.feedreader.com/
Detod.com : http://my.detod.com
• Liste d ’agrégateurs :
http://snapfiles.com/freeware/misctools/fwrssreaders.html
29
Wticker
30
Sharpreader
31
My.detod.com
32
L’insertion de fils dans un site WEB
• Autre technique d’utilisation des fils RSS : la
syndication ou comarquage dans le jargon NTIC
français
• On peut ainsi offrir par exemple dans une fenêtre
dédiée de son site intranet ou internet un fil
d’information spécialisée
• Pour intégrer et manipuluer un fil RSS dans son
site, il existe de nombreuses bibliothèques :
– Last RSS
– Magpie RSS
– zFeeder
33
Exemple d’insertion dans un site WEB
<?php
include "./lastRSS.php";
$rss = new lastRSS;
$rss->cache_dir = './temp';
$rss->cache_time = 1200;
// Charge le ficher rss
if ($rs = $rss->get('http://www.freshfolder.com/rss.php')) {
// Affiche le logo (si présent)
if ($rs[image_url] != '') {
echo "<a href=\"$rs[image_link]\"><img src=\"$rs[image_url]\"
alt=\"$rs[image_title]\" vspace=\"1\" border=\"0\" /></a><br />\n";}
// affiche les liens
echo "<big><b><a href=\"$rs[link]\">$rs[title]</a></b></big><br />\n";
// affiche la description
echo "$rs[description]<br />\n";
// affiche les articles
echo "<ul>\n";
foreach($rs['items'] as $item) {
echo "\t<li><a href=\"$item[link]\">".$item['title']."</a><br
/>".$item['description']."</li>\n"; }
echo "</ul>\n"; }
else { echo "Error: It's not possible to reach RSS file...\n"; } ?>
34
Servicedoc.info
35
Manipuler les données XML
comme un objet PHP
• PHP5 propose la fonction
simplexml_load_file ( string $filename) qui
convertit le document XML filename en un
objet.
•
$flux = simplexml_load_file('http://…/index.rss')
• On peut ensuite manipuler le flux RSS
comme un objet
$flux->channel->title
36
Fenêtres vers l'extérieur
• On peut imaginer des petites fenêtres déroulantes,
distinctes du contenu habituel du site hébergeur,
où s'affichent des informations (comme le fil
afp...) ; on peut aussi imaginer des pages entières
de contenus distants, regroupés par matière et
offrant une masse d'information considérable
(voir, pour les fils d'informations issus de weblogs
juridiques my.detod.com).
37
Trouver un fil RSS
• www.syndic8.com/
• www.feedster.com/
• www.newsisfree.com/
• http://www.syndic8.com/feedlist.php?ShowGe
oIPLocation=fr%3BFrance
38
Qui diffuse du RSS ?
• Par construction, tous les sites sous SPIP
(ajouter backend.php3 à l'url)
• Normalement, c'est indiqué par la mention
39
Qui ?
• Des sources gouvernementales
– http://news.gc.ca/cfmx/CCP/view/fr/index.cfm?
categoryid=12&category=Choisir%20vos%20n
ouvelles
– http://gils.utah.gov/rss/
• Des bibliothèques
– http://www.lisnews.com
– http://www.llrx.com/features/rssforlibrarians.htm
40
Les avantages du traitement de
l’information par RSS
• Permet la rediffusion fiable et sûre (un fil rss ne
peut pas être "spammé") d'informations officielles,
ou au moins dont on connaît la source, et offre un
service important pour les intranets et sites
Internet.
• Evite la multiplication des listes de diffusion,
allège considérablement le travail et la charge
réseau pour la diffusion d'une même information.
41
RSS, Pour quoi ?
• plus d’info, plus vite, et surtout mieux filtrée
• Le rêve du "push" (l’utilisateur ne cherche plus
l’information, elle vient vers lui) devenu réalité.
• la possibilité de lire plus d’informations en moins
de temps et de manière plus confortable, sans être
envahi par cette information.
– L’utilisateur sélectionne lui-même les publications qui
l’intéresse, et les filtres par des mots-clés
42
Pour qui ?
– Le RSS, c’est donc une veille qui peut s’apparenter
à la lecture des sommaires des revues
– Excellent outil pour des professionnels de
l’information (scientifiques, documentalistes,
journalistes, juristes, veilleurs...) pour tenir à jour
leurs connaissances.
– Possibilité d’alimenter sans effort un INTRANET de
veille
43