Générez les fils RSS de vos sites préférés même s'ils n'en proposent pas
Par NiKo le dimanche 29 janvier 2006, 12:09 - Divers
- Lien permanent -
14 commentaires -
Tags :
Je suis en train de tester le service de Feed43.com permettant de créer un flux de syndication RSS vers un site quand bien même ce dernier n'en proposerait pas. C'est par exemple le cas des news insolites de Yahoo, et c'est l'occasion pour moi de cesser mes lamentations à ce sujet 
Prérequis
- Il faut obtenir une invitation pour utiliser ce service [1],
- L'utilisation du service nécessite de connaître un minimum le langage HTML.
Mise en oeuvre
D'abord, entrez l'URL de la page dont vous voulez générer un fil RSS depuis les contenus. Dans notre cas, nous entrons http://fr.news.yahoo.com/125/. Vous pouvez spécifier l'encodage de la page. Pour le connaître, sous Firefox récupérez la valeur sélectionnée dans le menu Affichage > Encodage des caractères ou en faisant un bête <Ctrl> + i.
Une zone contenant le code HTML de la page apparait - au passage, vous noterez la magnificience du code HTML généré chez Yahoo. Nous allons devoir trouver les délimiteurs de la zone interessante dans ce code [2]. Pour la page de news Yahoo, on constate que ce qui nous interesse est compris au sein des morceaux de code suivants (Global Search Pattern) :
<table border=0 width=100% cellpadding=0 cellspacing=0><tr><td valign=top>
{%}
<table border=0 cellpadding=2 cellspacing=0><tr><td> </td><td> </td></tr>
... où la chaîne {%} indique à Feed43 que notre section ce trouve à cet endroit, et la chaîne {*} est un champs passe-partout (wildcard).
Au sein du bloc émanant de cette délimitation, les itérations de dépêches (Item search pattern) sont de cette forme :
<a href="{%}" style="text-decoration:none">{%}</a>{*}</small>{*}<br>{%}</font>
Un clic sur le bouton Extract nous trouve les 5 items principaux. Ça tombe bien, c'est ça qu'on voulait.
Item 1
{%1} = http://fr.news.yahoo.com/28012006/202/un-iguane-d-appartement-provoque-une-inondation-en-allemagne.html
{%2} = Un iguane d'appartement provoque une inondation en Allemagne
{%3} = Alors que son maître s'était absenté pour quelques heures, un iguane a provoqué une inondation dans un appartement (...)
Item 2
(etc.)
Il ne reste plus qu'à remplir les champs descriptifs du fil à créer, et notamment quelles exctractions correspondent à quels champs. Dans notre cas, cela donne :
Item Title Template*: {%1}
Item Link Template*: {%2}
Item Content Template*: {%3}
La prévisualisation permet de s'assurer que tout est à sa place.
Ceci fait, il ne reste plus qu'à ajouter l'URL du fil RSS généré à notre agrégateur favori. C'est tout 
14 commentaires (Ajouter un commentaire)
Cool, ça fait plaisir
Tout simplement extra ce truc
J'ai gardé ce billet au chaud et me suis jeté à l'eau ce matin. Ca marche parfaitement.
Merci beaucoup
... Windows only
Et puis au moins avec son propre fil RSS on ne dépend pas d'un soft.
Pour info, la desktop sidebar permet de faire ça depuis des années (et je m'en servais précisément pour la section insolite de yahoo
Oui, le concept est bien sympa ; ca devient de plus en plus difficile d'imaginer un service qui n'existe pas encore...
David Duret > EN fait Feed43 fait grosso modo l'équivalent de ce que fait ton script (dans la logique). Sauf qu'il y ajoute un front-end super sexy et s'occupe de l'hébergement
Je m'étais fait un script de récupération des news de Yahoo France, voici le source avec une démo pour les news insolite. C'etait sensé fonctionner pour les autres rubriques mais le code HTML des pages cibles étant modifié de temps en temps, il faut modifier les pattern des expressions rationnelles dans ce cas et je n'ai pas toujours le temps de mettre à jour. En esperant que ca peut servir et merci de me faire vos retours si vous améliorez ça (et merci aussi de ne pas mettre l'url de demo fournie directement dans vos agrégateurs, je n'ai encore implémenté aucun systeme de cache - fichier ou HTTP).
Pour les news insolites de yahoo tu peux utiliser ce fil : http://feed.newsxs.com/?s=1085
De mon point de vue c'est d'abord au webmaster de bien faire son boulot si il veut que les internautes puissent avoir un feed de son site.
Mais ce site semble tout de même bien pensé.
ps : Aeno > +1 pour la réouverture de ton blog :-D !
Parfait, j'ai reçu mon code environ 15 minutes après demande, génial ce service
Denis > C'est justement la partie manipulation DOM qui est loin d'être évidente, surtout avec des sites en HTML pourrave à la Yahoo News. Et force est de constater que c'est souvent ce genre de sites qui ne propose pas de flux de syndication
On pourrait faire le même chose avec loadHTMLFile() de php5, une manipulation via DOM de la page et une petite transformation XSLT pour transformer le tout en un fichier RSS valide. Ça donne des idées tout ça... Plutôt que d'attendre des heures un "code d'invitation", je crois bien que je vais coder un petit truc dans mon coin pour pouvoir l'utiliser en local. Ça rendrait tout à fait bien comme page d'accueil de Firefox.
(je sais, je suis bizarre: je tombe sur un article sensé me faciliter la vie, et c'est le contraire qui me tente d'un coup. Faut pas chercher à comprendre...
)
Parfait. Maintenant, tu rouvres ton blog, et plus vite que ça.
Excellent ! Je cherchais un truc comme ça depuis un bon moment.
La discussion continue ailleurs
Feed43.com
Générez les fils RSS de vos sites préférés même s'ils n'en proposent pas