Liste des tutoriels Yahoo Pipes
On entre enfin dans les vraies possibilités de Yahoo Pipes.
Les tutoriels qui précèdent montrent des fonctions utiles, et qui justifient l’utilisation de l’outil : utiliser Yahoo Pipes pour filtrer un seul fil RSS sur un mot-clé est légitime, c’est rapide, et ce n’est pas sortir la grosse artillerie pour tirer le perdreau. Mais Yahoo Pipes est un outil remarquable pour générer des fils RSS sur des pages qui n’en proposent pas : page d’actualités, liste de résultats dans un moteur de recherche.
Là, une remarque annexe : lorsque je génère ce genre de fils, je le rends très rarement public, car il pose tout de même la question de la propriété des données. En effet un site qui propose un fil RSS s’attend à ce que son contenu soit lu ailleurs que su le site lui-même. L’auteur d’un site qui n’en propose pas peut s’être fait la réflexion inverse, et vouloir précisément que les internautes viennent sur son site au lieu de lire ces informations ailleurs (pour des questions de publicité, ou d’autres). Je n’ai pas d’attitude type à proposer, mais je voulais tout de même signaler le problème : l’auteur d’un site ne sera pas forcément ravi si vous diffuser son contenu à tous les agrégateurs.
De quoi est composé un fil RSS
Un fil RSS, c’est un fichier XML composé de balises <item>.
Dans ces items, il ya 3 éléments clé :
- le titre
- le lien (vers le site d’origine)
- la description (qui peut être un résumé du billet, ou son contenu intégral).
Sur une page d’actus comme celle des archives départementales du Bas-Rhin, il faudra donc que dans le code HTML je détermine
- ce qui caractérise un item (donc : qu’est-ce qui sépare un item — une actu — d’un autre)
- ce qui, dans cet item, constitue
- le titre
- le lien (si l’item renvoie vers une page plus complète)
- la description (le corps de l’item)
Donc je vais créer un pipe
- en indiquant ce qui permet de distinguer un item de l’autre (chaîne de caractères systématique)
- en indiquant, pour chaque item, ce que sont le titre, le lien et la description.
La notion “pour chaque item” s’exprime en informatique sous le terme de boucle (en anglais : loop). Donc dans mon pipe je vais faire 3 boucles disant successivement que pour chaque item :
- le titre est situé entre telle et telle balise HTML
- le lien entre telle et telle balise
- la description entre telle et telle balise.
Deux nouvelles expressions Perl
A ce stade, le caractère . ne suffit plus. En effet il désigne tout caractère sauf le saut de ligne.
Or il faut
- pouvoir chercher “tout caractère, y compris un saut de ligne”
- tout caractère, sauf un caractère précis (par exemple, tout caractère sauf un guillemet.
Il n’existe pas de raccourci Perl pour le premier cas. En revanche il existe
- \d : tout chiffre
- \D : tout ce qui n’est pas un chiffre
Et si je demande à Perl de chercher [\d\D]*, il trouvera n’importe quel chiffre ou non chiffre, en nombre nul ou illimité : donc n’importe quoi.
Pour chercher tout caractère à l’exclusion d’un seul, par exemple tout caractère (en nombre indéfini) sauf #, il faut le faire précéder de l’accent circonflexe ^ :
- [^#]*
A noter :
- les crochets servent à désigner un ensemble de caractères (ou des raccourcis Perl). Ainsi [a-z] permettra de chercher toute lettre de l’alphabet en minuscules, et [a-zA-Z] toute lettre de l’alphabet, en minuscules ou majuscules (si vous voulez que ce soit en nombre indéfini, il faut mettre une * après). C’est pourquoi si on cherche spécifiquement les caractères [ et ] (comme c’était le cas dans le tuto 6), il faut les faire précéder de l’antislash.
- Je vous rappelle l’existence de cette page pour connaître davantage d’expressions régulières Perl.
Place aux vidéos qui bougent
Je redonne le lien vers le site des AD du Bas-Rhin que j’exploite honteusement ici.
J’ai été obligé de découper en 2 vidéos (Jing me limite à des screencasts courts, mais ce n’est sans doute pas plus mal…)
Vidéo 7-1 : Préparation des modules
Vidéo 7-2 : Expressions régulières avec du code HTML
Pré-requis : il faut connaître un peu le HTML, sa structuration, quelques balises (pour les liens, les tableaux, les paragraphes, etc.)
N’hésitez pas à regarder de nouveaux les vidéos, mettre la lecture en pause, etc. J’ai fait rentré beaucoup de choses dans ces 2*4 minutes.
Et après ?
Si vous êtes encore là, vous avez passé le plus dur.
On pourra voir par la suite
- la géolocalisation
- l’enrichissement des descriptions (par exemple, un fil RSS de notices bibliographiques enrichi de rebonds vers différentes plates-formes)
- et peut-être d’autres choses si j’ai des idées d’ici là.
Bon, la prochaine fois, pour se reposer, j’analyserai un fil RSS existant, combinant tout un tas de choses déjà vues. Ce sera une petite révision
.
Benoa a dit,
15 mai 2009 à 3:50
Je viens de découvrir vos vidéos…super travail !
Je vais regarder ça de plus près, et combler mon retard sur Yahoo Pipes (je me débrouille avc autre chose pour créer des flux)
Lully a dit,
15 mai 2009 à 3:57
Merci. Je ne sais pas si le résultat est “super”, mais il semble que personne d’autre (depuis le temps que Yahoo Pipes existe) ne se soit décidé à le faire, alors…
Comme outil permettant de créer des flux, Feed43 est ce que je connaissais de plus souple jusque là. Ponyfish ne m’a pas convaincu longtemps. Et j’ai pour l’instant abandonné Tarpipe (qui remplit certaines fonctions de Yahoo Pipes, mais ne permet pas de regex).
S’il y a d’autres outils performants (et documentés, pour une fois), je suis intéressé.
Benoa a dit,
15 mai 2009 à 4:03
Je me souviens avoir été très enthousiasmé par Yahoo Pipes à sa “sortie” mais par manque de temps je ne m’y suis pas mis.
Pour créer des flux j’utilise dapper (http://www.dapper.net/dapp-factory.jsp),
ça m’évite de rentrer dans le code mais je vois Pipes comme un bon complément lorsqu’on atteint les limites de ce genre d’outil.
Lully a dit,
15 mai 2009 à 4:47
Je ne connaissais pas Dapper. Je vais regarder, merci beaucoup.
assurance01 a dit,
12 juin 2009 à 3:41
Bonjour,
Super boulot
Pourriez vous créer un tutoriel pour récupérer le texte complets des articles d’un flux RSS ?