Je vous présente aujourd'hui un des nombreux projets du développeur Stefan SUNDIN qui a pour but d'extraire des données de certains sites web et de les retourner sous la forme de fil RSS. L'outil s'appelle RSSBox.
Le principe est très simple et la concrétisation encore plus !
Prenons un exemple. Vous souhaitez suivre le fil d'une personne au travers de son flux RSS mais vous ne le trouvez pas ? Peut être que le réseau sur lequel la personne poste ses informations n'a pas (ou plutôt n'a plus) cette option (Facebook) de base affichée, ou l'accès à ce fil reste possible mais il faut aller fouiller la documentation pour comprendre comment y accéder (twitter ?) ?
L'outil RSSBox est là pour vous aider !
L'Outil RSSBOX
La première chose à bien avoir en tête est que sur ces type de médias, ces types de sites web, l'accès à la "page personnelle" d'une personne est conditionnée à une URL donc unique sur le web. Ca n'a l'air de rien mais c'est important car il pourrait en être autrement pour gérer des fils RSS au cœur d'un seul site, en passant par exemple par des variables de sessions et donc non forcément accessibles via l'URL ! Ca va sans dire mais ca va mieux en le disant !
Ensuite, comme on a cette URL, d'un point de vue technique, deux possibilités s'offrent au développeur de RSSBox : Soit le cœur du programme du site en question propose un fil RSS mais n'affiche pas son URL : l'auteur n'a jusque qu'à vous recomposer l'URL pour vous l'afficher (c'est le cas de Youtube), soit ce cœur du programme est dépourvu de système de fil RSS, le système doit d'abord grabber la ou les pages (les télécharger en quelque sorte sur le serveur du système), les analyser et recomposer un fil RSS au format XML. C'est le cas d'instagram par exemple (si cela marchait encore :) )
Personnellement, j'ignore comment fonctionne le système RSSBox mais j'imagine que les deux techniques sont mixées, selon le site interrogé par l'utilisateur;
Comment se présente le fonctionnement de RSSBox ?
Je vous l'ai dit en première partie, la plupart des sites ont une URL spécifique d'accès à la page "personnelle" d'un auteur. Si nous prenons le cas d'instagram, la page personnel d'Ana Polina par exemple est se la sorte : https://www.instagram.com/annapolina_/ On voit aisément qu'après l'extension du nom de domaine, c'est bien un identifiant unique qui conditionne l'accès à la page de la charmante autrice.Pour plus de renseignements (sur les URLs), je ne peus que vous conseiller la relecture de la le RFC 1630.
Partant de cette analyse, vous comprenez donc que toute url doit être unique pour taper sur la bonne identification du compte dont vous voulez tirer un fil RSS.Et c'est donc sur ce point technique (mais tellement logique) que RSSbox s'appuie pour "extraire" les contenus des pages. Si nous reprenons les deux cas de figure énoncées ci-dessus, soit RSSBox recompose l'URL du fil RSS et vous le retourne, et peut par la même occasion jouer un rôle de cache (et éventuellement siphonner des données) des fils RSS dont les auteurs en demande la correspondance (RSSBox est ainsis sûr que le fil existe puisqu'un utilisateur le demande), soit RSSBox prend la demande, recompose le fil RSS et le retourne. Pour avoir testé sur le cas Youtube que je connais bien, je vous affirme que l'outil renvoie bien l'URL de Youtube sans donc siphonner de données. Un bon point. Un point moins bon, mais compréhensible par la politique Instagram, je n'ai malheureusement pas pu en extraire le fil RSS. En effet Instagram comptabilise le nombre de requêtes par IP faites par jour... Faudrait pas qu'ils se fassent siphonner leur contenu non plus ;) Cela dit, il n'est pas interdit de me dire si vous avez réussi ou pas :)
Le retour
Lorsque vous avez saisi votre lien à partir duquel vous souhaitez en extraire l'URL, RSSBox vous retourne le fil RSS. Prenons un exemple de fil RSS recherchée d'une chaine Youtube.
- Allez sur la page de la chaine Youtube
- Copiez l'URL
- Ouvrez RSSBox
- Coller l'URL dans le champs Youtube
- Validez
La validation entraîne l'affichage d'une petite fenêtre modale avec le lien RSS et une option pour copier ce lien dans le presse papier.
Et voila, vous avez votre RSS réutilisable où bon vous semble