Aller au contenu principal

Yahoo Pipes : tutoriel 7 (créer un fil RSS)

15/05/2009

Liste des tutoriels Yahoo Pipes

<update>14/01/2013 : Le module Fetch Page a été mis en « deprecated » par Yahoo Pipes, et un module XPath Fetch Page est venu le remplacer. Un tutoriel existe désormais pour ce nouveau module</update>

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é :

  1. le titre
  2. le lien (vers le site d’origine)
  3. 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

  1. ce qui caractérise un item (donc : qu’est-ce qui sépare un item — une actu — d’un autre)
  2. 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

  1. en indiquant ce qui permet de distinguer un item de l’autre (chaîne de caractères systématique)
  2. 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

  1. pouvoir chercher « tout caractère, y compris un saut de ligne »
  2. 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

Et voilà le pipe produit

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 ;-).

82 commentaires
  1. Benoa permalink
    15/05/2009 15: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)

  2. 15/05/2009 15: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é.

  3. Benoa permalink
    15/05/2009 16: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.

  4. 15/05/2009 16:47

    Je ne connaissais pas Dapper. Je vais regarder, merci beaucoup.

  5. assurance01 permalink
    12/06/2009 15:41

    Bonjour,

    Super boulot 🙂

    Pourriez vous créer un tutoriel pour récupérer le texte complets des articles d’un flux RSS ?

  6. 28/10/2010 09:03

    Mouai !
    On sent bien que vous maîtrisez ce sujet mais à quoi bon sortir des outils si complexes qui ne seront utilisés que par quelques personnes ayant beaucoup de temps à y consacrer !
    Ce truc propose certes des fonctionnalités intéressantes, mais ça ne suffit pas pour en faire un outil indispensable. La deuxième condition est la convivialités, ici on est immergé dans une usine à gaz imbuvable ou le seul fait de l’utiliser est déjà une activité à part entière…

  7. 02/11/2010 17:48

    @Gemel : Je n’ai pas écrit un exposé vibrant pour inciter à utiliser Yahoo Pipes. Pour cela, il y a toutes les applications que j’en fais pour mon propre usage et que je mentionne çà et là sur mon blog, applications que je ne saurais faire autrement.
    Ceci est un tutoriel, il s’adresse aux convertis.
    Ne m’en veuillez donc pas si, en l’espèce, je ne trouve rien à vous répondre.

  8. mathieu permalink
    02/03/2011 12:19

    Merci pour votre tuto cela fait 3 semaines que je cherche un moyen efficace de créer des RSS, si vous avez d’autre tutos merci de nous mettre les liens

  9. 02/03/2011 15:28

    Bonjour, et encore merci pour tes tutos. Je souhaiterais créer des flux Rss à partir de site (leboncoin ou dealip) pour mettre en place un système de veille pour mon stage.
    à chaque fois j’ai « Preview Failed problem receiving response data » aurais tu une explication stp? et une solution

    le pipe
    TEST HTML en flux RSS
    Problème d’URL Preview Failedproblem receiving response data
    http://pipes.yahoo.com/pipes/pipe.info?_id=4bddabf302be94920f0f42b22c564119

  10. mathieu permalink
    02/03/2011 15:39

    Pourquoi la description de s’affiche pas entièrement?
    Existe t’il une solution pour obtenir tout l’article?
    03 mars : ouverture de la salle à 10 heures
    La réunion de service mensuelle, qui a lieu le premier jeudi du mois, se tiendra Jeudi …

  11. 03/03/2011 14:21

    @Mathieu : je ne comprends pas les deux questions coup sur coup.
    Sur le pipe vers lequel vous pointez : il y a un souci dès le premier module (Fetch Page) puisque le code que vous indiquez comme étant le début du texte à analyser serait aussi le code séparant chacun des items entre eux.
    Cela, ça pose forcément problème à Yahoo Pipes !

  12. 27/06/2011 15:50

    Bonjour
    merci pour le tutoriel. Comme le disait Benoa super travail.
    J’ai essayé de faire un flux RSS mais au lieu de prendre le titre dans le premier <a> il le prendre dans le dernier. Conclusion = j’obtiens « 1 comments » en place du titre que je vise. Je parle ici du site « Emerging challenges » à l’adresse suivante http://jeahil.wordpress.com/.

    Moi aussi je trouve Yahoo pipes un peu compliqué, n’eut été de votre tutoriel, jamais je n’aurais pu comprendre comment ca fonctionne. La section Help est peu efficace.

    merci de votre aide

  13. 30/06/2011 10:27

    @Marthegag : où est le pipe en question ? (pour que je comprenne ce que vous avez commencé à faire)
    Au fait, quel est l’intérêt de faire un pipe sur un blog WordPress qui propose déjà tous les flux RSS possibles ?

  14. Yan permalink
    05/07/2011 09:59

    Bonjour,

    Tout d’abord bravo et merci pour ces tutoriels très bien faits!
    J’ai déjà créé un premier flux RSS avec succès sur YahooPipes grâce aux tutoriels, mais je bute sur un deuxième.
    Voici le code du content récupéré:

     » id= » »>

    StorageCraft livre blanc : De la sauvegarde à la reprise d’activité

    Ce que je souhaite récupérer pour mon title est:
    StorageCraft livre blanc : De la sauvegarde à la reprise d’activité
    Mais je n’arrive pas à entrer la bonne expression dans le string regex…je pense que ma difficulté vient des sauts de ligne…

    Merci par avance pour le coup de main!

  15. Yan permalink
    05/07/2011 10:03

    Le code n’est pas passé, je le reposte avec des tirets (désolé pour le spam^^)

    — » id= » »>


    –StorageCraft livre blanc : De la sauvegarde à la reprise d’activité

  16. Yan permalink
    05/07/2011 10:06

    Bon toujours, pas, je mets le lien vers le Pipe, ce sera plus simple!
    (Encore dsl pour le spam, il manque la fonction « prévisualisation » sur ce forum :=) )

    http://pipes.yahoo.com/pipes/pipe.info?_id=216db964b9f7abecef424412a2c88e03

  17. 05/07/2011 10:52

    @Yan : je confirme, c’est plus simple avec l’URL du pipe !
    D’abord, une petite mais importante erreur : ce sont des antislash qu’il faut et non des slash dans [\d\D]
    Ensuite, pour récupérer la valeur entre <div class="c"> et </div>, comme on voit qu'il n'y a jamais de balise dedans, mais qu'il peut y avoir des sauts de ligne (donc le . ne fonctionne pas), on peut écrire :
    ([^>]*), ce qui permet de récupérer tous les caractères à l'exclusion du chevron <
    Et enfin, comme la
    <div class="c"> est présente plusieurs fois dans le item.content (mais cela, vous l'aviez vu), il faut effectivement ne garder que le premier, qui est précédé de <div class="hd"> (les deux div étant séparés de caractères d'espacement, que ce soit des espaces, des tabulations ou des sauts de ligne : on peut donc l'écrire \s)

    Je vous propose donc :
    [\d\D]*<div class="hd">\s*<div class="c">([^<]*)<[\d\D]*

    qui marche bien

  18. Yan permalink
    05/07/2011 11:09

    Ca marche super!
    Merci beaucoup, et encore bravo pour tous ces tutoriels!

  19. Myriam Durand permalink
    02/08/2011 08:37

    Bonjour,

    Je suis stagiaire en veille stratégique, et je m’intéresse depuis une semaine à la création de flux RSS à l’aide du logiciel Yahoo Pipes. Je vous remercie pour ces tutoriels qui m’ont bien aidée; cependant, je rencontre des flux « récalcitrants » qui me posent problème…!! Pourriez-vous m’aider s’il vous plaît? Voici la liste:

    UKRAINE:
    http://pipes.yahoo.com/pipes/pipe.info?_id=0e4ba103355eaad94a89732dccb8e7e5
    « O item » dès le début…

    Idem pour PAKISTAN et IRAN:
    http://pipes.yahoo.com/pipes/pipe.info?_id=be44f55fc61668995429535504ed1d79
    http://pipes.yahoo.com/pipes/pipe.info?_id=6ad32a8eab4465f0d2638471ac6bdb4a

    COREE DU SUD:
    http://pipes.yahoo.com/pipes/pipe.info?_id=0fadaa429745544d65d993416cf06739
    « Error fetching http://www.kari.re.kr/eng/bbs/bbs_index.asp?catcode=1210000000&depthno=3: java.nio.charset.UnsupportedCharsetException: en: en »…

    ESPAGNE:
    http://pipes.yahoo.com/pipes/pipe.info?_id=028d145f6a371f1dcf7418380ab88909
    Pb au niveau du Regex de la description, le reste marche…

    BELGIQUE:
    http://pipes.yahoo.com/pipes/pipe.info?_id=a562e7646c97c387236c88cf06280242
    On a l’impression que ça marche dans « view results », mais en fait, quand on le met en RSS, il y a un souci au niveau des titres, ce qui est d’ailleurs visualisable dans le premier loop…

    ALGERIE:
    http://pipes.yahoo.com/pipes/pipe.info?_id=ccc02423114ae11614ddac28d84bd931
    Le code source de la page montre que le codage n’est pas exactement le meme pour toutes les actualités, du coup j’ai des problèmes au niveau de mes loop…

    MERCI pour votre aide, cela me débloquerait grandement !!

  20. Olivier permalink
    27/09/2011 23:52

    Bonjour,

    J’étais utilisateur de ponyfish (qui n’est plus maintenu), puis de dapper (avec assez peu de résultat) et le tuto de pipes est vraiment très intéressant. Malheureusement j’ai du raté quelque chose car le pipe http://pipes.yahoo.com/pipes/pipe.info?_id=5a4a03a10cbf28ef994b2ce5a91c3004 ne fonctionne pas. Dans le debugger le début et la fin de plage sont bien identifiés, c’est le changement d’item qui pose problème (j’ai un seul >0). Ce qui me semble être la fin d’un item est  »

     » que je traduis par /\s/* ou /\s/+ ou /[\ \t\r\n\f]/* ou [\d\D]* ou \s* ou \s*, et rien ne fonctionne.

    Par avance, merci de votre aide

  21. 28/09/2011 07:12

    @Olivier : dans le Fetch Page, le dernier champ (qui indique le séparateur) ne tolère pas, à ma connaissances, les expressions régulières.
    Il faut donc mettre </tr> au lieu de </td>/s*</tr>

  22. Olivier permalink
    28/09/2011 08:03

    Merci de votre réponse; mais il y d’autres balises intermédiaires et non systématiques. Et donc certains résultats sont tronqués.

  23. 28/09/2011 08:50

    @Olivier : et en mettant en séparateur : class="date" ?
    Il faut alors virer le premier élément (par exemple avec le module Filter pour enlever tout ce qui ne contient pas href)

  24. Olivier permalink
    28/09/2011 09:10

    Très bonne idée, le filtre; par contre j’ai une fin de semaine un peu chargée, donc je regarde la semaine prochaine.

    En tout cas, pipe parait vraiment génial mais un peu dur d’accès et ces tutos me sont déjà indispensables.

  25. Olivier permalink
    11/10/2011 22:29

    Bonjour, je sollicite à nouveau votre aide car je ne m’en sors pas. Concrètement dans votre exemple, dans le filtre dans les items proposés vous avez « content » qui correspond à la sortie du « fetch page ». Dans mon cas, la sortie du « fetch page » j’ai bien des items « content » mais dans le filtre (ou le loop c’est pareil) les items proposés sont « author », « description », « link », « pubdate », « title ». Et je n’arrive à utiliser aucun de ces champs. Avez vous une idée ?

  26. 12/10/2011 07:44

    @Olivier : Dans le filtre de ce pipe, effectivement, le module Filter propose par défaut les champs classiques d’un fil RSS. Mais rien ne vous empêche de ne rien choisir dans la liste et d’écrire simplement : « item.content ».

    Dans la suite du pipe, il faudra bien évidemment utiliser trois module Loop successifs (avec chacun un module String Regex à l’intérieur) pour attribuer les valeurs indispensables à chaque item : item.title, item.link, item.description.

  27. Olivier permalink
    12/10/2011 08:38

    Je suis, quand même, resté bloqué 5 jours sur ce problème (alors qu’il suffisait de saisir de content) !!!! Maintenant je vais pouvoir reprendre l’application du tuto.

    Un très grand merci.

  28. Olivier permalink
    12/10/2011 19:57

    Ca y est, je l’ai ! Un grand merci pour le tuto et pour l’aide super réactive. En tout cas, j’adore déjà yahoo pipes et je pense que je vais approfondir tout ça.

  29. Mike permalink
    09/11/2011 10:03

    Bonjour,

    Est-ce que vous savez s’il est possible lorsqu’on a un ficher xml (avec des items ayant chacun un titre, une description et un lien), de filtrer le contenu du lien de chaque item ? Parce qu’un filtrage sur la description seule ne suffit pas, je loupe beaucoup d’informations.

    Merci d’avance si quelqu’un a une idée.

  30. 09/11/2011 12:16

    @Mike : je ne suis pas sûr de comprendre quelle est votre difficulté.
    En ajoutant un module Filter dans la chaîne, vous pouvez demander qu’un mot, ou plusieurs, soit présent – ou pas – dans le item.link, ou dans le item.description, ou dans le item.title.
    Si vous voulez filtrer pour qu’un mot sans présent/absent à la fois dans les 3 champs, vous pouvez répéter la consigne de filtre.
    Le mieux, si mon explication ne vous éclaire pas, est de me fournir le lien vers le pipe qui vous tracasse, et de me préciser votre question par un exemple précis…

  31. Mike permalink
    09/11/2011 22:15

    Merci Etienne d’avoir répondu aussi rapidement !

    J’ai fait plusieurs essais avec différents sites et en fait si je filtre sur item.link, ça ne filtrera que l’adresse http en elle-même, mais pas son contenu. Ce que j’aimerais c’est un filtre capable de filtrer la page à laquelle renvoie le lien parce que souvent un titre et une description succincte ne suffisent pas.J’ai pu m’en rendre compte à plusieurs reprises.
    J’ai bien essayé de créer un item.content, mais je tourne en rond. Si vous avez une idée, je la prends volontiers !

    Voici un exemple : http://pipes.yahoo.com/pipes/pipe.info?_id=e0d625b87d415f9bd077cb96facd35be

    Dans ce cas malgré mes efforts, le filtre ne marche pas sur le contenu entier de la page.

  32. 10/11/2011 08:59

    @Mike : vous avez bien fait de préciser, je n’avais rien compris. Là, ça va mieux.
    Donc il vous faut prendre un module Loop, et à l’intérieur mettre un « Fetch Page », dont l’URL sera item.link.
    Le contenu, vous l’envoyer dans un truc du genre « item.page »
    Ainsi vous aurez stocké, dans chaque item, le contenu intégral de la page derrière le lien item.link.
    Ensuite vous pouvez faire un filtre (module Filter) sur le contenu de ce item.page.

    Suis-je clair ? Est-ce satisfaisant ?

  33. Mike permalink
    11/11/2011 12:18

    @Etienne : Un immense merci ! C’est tout à fait ce que je voulais et ça marche ! J’aurais mis du temps avant de trouver la solution. Merci mille fois !

  34. Mathieu permalink
    25/01/2012 16:52

    Bonjour,
    Je rencontre un souci.
    Voici ma phrase par exemple: Bonjour (prénom) Pierre, il fait (temps) beau.
    J’utilise le module Regex replace \(.*\) with « rien ».
    Le problème c’est que cette solution supprime toutes les parenthèses, hors je souhaite supprimer que la 1ere.
    Comment faire?

    Autre chose, comment insérer un espace?

    Merci

  35. Olivier permalink
    27/01/2012 01:25

    Re-Bonjour,

    J’ai fait quelques progrès avec Yahoo Pipes et j’aimerais savoir si vous avez une solution au problème suivant. Sur le lien suivant : http://tinyurl.com/89gmctk les dates sont relatives (- 24 heures, – 3 jours, …). Y-a-t-il un moyen de récupérer la date du jour pour « fabriquer » une date de publication ? Par avance, merci.

    P.S. : En travaillant sur Yahoo Pipes j’ai forcément travaillé les expressions régulières et je suis tombé sur ce lien : http://lumadis.be/regex/test_regex.php, je le trouve très utile.

  36. 27/01/2012 09:20

    @Mathieu : dans le module Regex (Replace), il y a dans la partie droite des petites cases cochables avec les valeurs : g, s, m, i
    La case « g » cochée signifie : Traiter toutes les occurrences.
    Si elle n’est pas cochée, logiquement, ça ne traite que la première occurrence.

    Si j’ai répondu à côté à votre problème, alors il vaut mieux me fournir l’URL du pipe qui vous bloque, afin que je puisse mieux le comprendre.

    Et je n’ai pas compris la dernière question.

  37. 27/01/2012 09:24

    @Olivier : en utilisant le module Date > Date Builder, vous pouvez y écrire « today », par exemple.
    Cela vous produit la date sous la forme d’un ensemble de valeurs (jour, mois, etc.)
    Si vous voulez ensuite la structurer d’une certaine manière (AAAA-MM-JJ par exemple) pour l’introduire dans l’URL de la page à traiter, il faut utiliser ensuite « Date formatter » en y mettant le code qui vous convient
    (liste abrégée des codes disponiblesliste complète)

    Si la forme que vous voulez ne s’y trouve pas, il faudra alors utiliser un Build String en concaténant les différents champs de la date produits par « Date Builder ».

  38. Mathieu permalink
    27/01/2012 09:36

    Bonjour,
    Merci Etienne. Voici le lien: http://pipes.yahoo.com/pipes/pipe.info?_id=ce618c3fe4fb3d3326a486ecffe27d88
    Résultat: RT @fgandi . http://t.co/zuXFDkov #Clermont #Auvergne
    Résultat voulu: RT @fgandi Découverte du jour : la #T2C a un site pour mobiles (mais bcp de fonctions ne marchent pas). http://t.co/zuXFDkov #Clermont #Auvergne

    Que signifie les autres cases (g, s, m, i)?

    Concernant ma 2eme question, comment insérer un espace exemple (module Regex) replace « pierre » with “ ” (sans les  » « ).
    Mat

  39. 27/01/2012 11:32

    @Mathieu : j’ai compris : la recherche du \(.*\) va de la 1ère parenthèse trouvée à la dernière parenthèse trouvée.
    Il cherche la plus longue occurrence.
    En fait, au lieu de chercher tout caractère (ce qu’exprime le point), il faut chercher « Tout caractère sauf une parenthèse fermante : [^)]
    Le caractère ^ permet d’exclure ce qui suit.

    Donc en 1ère partie du regex, il faut : \([^)]*\)

    Pour la signification des cases : http://discuss.pipes.yahoo.com/Message_Boards_for_Pipes/threadview?bn=pip-DeveloperHelp&tid=3410&mid=3414

    Pour l’espace : ma foi, quand je mets simplement un espace dans le 2e champ du Regex, il vient remplacer correctement ce qui a été trouvé dans le premier champ. Je ne vois pas de difficulté particulière sur ce point (ce qui veut sans doute dire que je n’ai toujours pas compris).

  40. Mathieu permalink
    27/01/2012 11:49

    Bonjour,
    Merci pour ta réponse.
    Elle répond à ma question et donc du coup, je n’ai plus besoin d’espace.
    Mais je vais quand même tenter dans un prochain post de t’expliquer.

    Mat

  41. Mickaël permalink
    19/03/2012 10:20

    Bonjour !
    J’aimerais savoir si quelqu’un a déjà eu le même problème que moi et si vous savez comment le résoudre. Je m’explique.
    J’ai créé un fil RSS à partir d’une liste d’articles et il semble parfaitement fonctionner. Mais quand je l’ajoute sur Netvibes, je n’ai que le premier article. Le fichier XML généré ne semble apparemment pas propre d’après le « Feed validator », mais je ne vois pas trop ce que je peux faire.

    Voici l’adresse de mon pipe : http://pipes.yahoo.com/pipes/pipe.info?_id=cab34b6a047d35a848037f09763e4152

    Merci pour tout aide !

    Mickaël

  42. 21/03/2012 08:12

    @Mickaël : je me demande si le problème ne vient pas de ce que l’URL de chacun des items générés est la même : http://www.bricomag-news.com/index.php?option=com_content&view=category&id=57:breves-distributeurs-bricolage&layout=blog&Itemid=217

  43. Mickaël permalink
    21/03/2012 08:45

    Bien vu, c’était effectivement ça le problème. Merci Etienne.

  44. 29/03/2012 21:41

    Bonjour – Peut-on créer des feed rss à partir d un lien de recherche dans google? Merci de votre aide ! Arnaud

  45. 30/03/2012 08:35

    @Arnaud : si vous utilisez le module Fetch Page et que vous y collez en entrée une URL de résultats Google, vous constaterez que la page aspirée par Yahoo Pipes ne contient que le formulaire, pas les résultats.
    En revanche si vous utilisez, par exemple, le plugin de recherche rapide de Firefox, vous constaterez que l’URL est plus courte (plus « propre ») et qu’elle agrée à Yahoo Pipes.
    Vous pouvez donc essayer ainsi.
    Mais je ne vois pas ce que ça vous apporte par rapport à l’utilisation en entrée d’un flux de recherche Google (Google Alertes)

  46. Jessy permalink
    08/11/2012 16:25

    Bonjour Etienne,
    Merci pour ces tutos très intéressants! çà m’avait l’air tellement compliqué mais avec les bonnes explications c’est pas si mal!

    Je suis quand même confrontée à un problème: la version de Pipes a évolué depuis votre dernier tuto et je ne retrouve pas le module « Fetch Page ». a la place il y a « XPath Fetch Page » qui n’a pas l’air de fonctionner de la même manière.

    Je sais que c’est du boulot mais pourriez-vous expliquer comment çà marche avec la nouvelle version?

    Merci d’avance

  47. 11/11/2012 13:54

    @Jessy : demande bien reçue.
    Effectivement, XPath Fetch Page fonctionne différemment. J’aurais préféré que Yahoo conserve les 2 modules, car ils peuvent s’appliquer à des situations différentes… mais c’est comme ça.
    Je vais réfléchir à une vidéo expliquant comment se servir de ce nouveau module.
    En substance : XPath Fetch Page permet de récupérer du contenu en indiquant le chemin jusqu’à l’information, exprimé en XPath (qui est une manière de naviguer dans les balises d’un fichier XML — ou HTML).
    Sur XPath, vous pouvez déjà trouver quelques infos sur ce blog, dans les « cours » sur XSL.
    Par exemple

    1. Les fichiers XML sont des arbres sans fleur ni fruit
    2. Les fichiers XML sont des arbres généalogiques
    3. Les fichiers XML : d’où je veux, quand je veux (XPath)
    4. D’un noeud à l’autre

    Cela dit, ça ne résoudra pas toutes les questions auxquelles vous pouvez être confrontés, donc je retiens l’idée d’un tutoriel.

  48. Jojo permalink
    18/12/2012 19:34

    Bonsoir,

    pour info on trouve toujours le module fetch page, sous la rubrique deprecated (en esperant qu’ils ne la virent pas complétement a terme …
    Préalable : merci pour ce tuto, il est « dense » mais colle exactement à mes besoins.
    Ensuite, pour ma part, pas de soucis avec le html … mais alors les regex … 0_o

    Mon soucis, la même chose dans content et link, je n’arrive pas à les séparer. J’ai fait plusieurs tentatives en changeant le html du filtre 1, tenter de modifier un peu les regex, mais rien n’y fait …

    Etienne si tu voulais bien y jeter un oeil stp .. par avance merci.
    Un code visualisé valant mieux qu’un long discours : http://pipes.yahoo.com/pipes/pipe.edit?_id=00111d587d0ab105cb49d5a8713a560e

  49. 18/12/2012 20:33

    @Jojo : en général, on récupère en sortie le contenu identique de ce qu’il y avait en entrée, quand l’expression régulière n’a correspondu à rien du tout. Du coup Yahoo Pipes remet la même valeur.
    Comme copier du code passe assez mal dans les commentaires WordPress (surtout quand on veut y mentionner des balises HTML), j’ai préféré faire une copie du pipe mentionné pour le corriger :
    http://pipes.yahoo.com/pipes/pipe.edit?_id=58aefce6e71643d99f4b2c8795120f93
    Faut pas hésiter ensuite à demander des précisions sur chacune des modifications apportées

  50. Jojo permalink
    19/12/2012 13:29

    Un grand merci pour ton aide, et ta promptitude. Mon intuition concernant le découpage au niveau du h2 était bonne, mais mon absence de compréhension des expressions régulières ne me permettait pas d’adapter tes indications à mon cas de figure … J’ai plus qu’a mettre le nez dans les regex ^^ Ce qui me permettra de comprendre tes modifs …

    Encore merci et joyeuses fêtes.

  51. Pierre permalink
    11/01/2013 02:14

    Merci Mr Cavaillé pour partager avec nous vos connaissances. Effectivement, un tuto concernant le XPath Fetch , et permettant à tous de bénéficier de cette nouvelle manière de créer des fils rss serait très apprécié. Encore merci à vous

  52. 23/01/2013 14:16

    Bonjour, vos tutos sont très bien détaillés, et vous êtes le seul sur la toile à en proposer, j’ai suivi votre partie sur le XPath Fetch Page avec des string regex en loop. Les expressions régulières que vous utilisez m’ont permis d’avoir mon flux rss ok. Cependant dans mon pipe http://pipes.yahoo.com/pipes/pipe.edit?_id=f88346cd62d23f781ec0e0c7c15a7bec je souhaiterais aller plus loin.
    Dans la description j’ai la taille de mon fichier et sa date de création, je voudrais utiliser l’item pubdate pour y mettre cette date, pour avoir déscription: taille du fichier, et pubdate: date de création du fichier.
    Or dans votre vidéo vous utilisez tout ce qui vient après la balise comme dans mon cas,
    [\d\D]*
    (.*)([\d\D]*) mais dans la source le code est comme ceci: … Taille : 7.94 Go Création : 23/01/2013 01:08:06 Il n’y à plus de balise fermante, je me suis donc dis qu’il fallait qu’il cherche jusqu’à  » C » exclue mais je ne sais pas comment cela se traduit en perl.
    Avez vous un conseil?
    J’espère avoir était clair

  53. 23/01/2013 16:34

    @Louis : Vos indications sont très claires.
    Pour exclure « C », l’expression régulière est : [^C]
    Mais j’ai fait une copie de votre pipe et ai traité un peu différemment le problème
    http://pipes.yahoo.com/pipes/pipe.edit?_id=f88346cd62d23f781ec0e0c7c15a7bec
    Vous pouvez en refaire une copie à votre tour (ainsi je pourrai supprimer le mien) et voir ce que j’ai modifié, pour continuer de corriger des trucs

  54. 23/01/2013 17:10

    Merci de votre réponse mais vous ne vous etes pas trompé dans l’url? C’est mon pipe ca.

  55. 23/01/2013 17:20

    Ah oui, tiens ! Quand j’ai cliqué sur « Save a copy » il a conservé la mémoire dans l’ancienne URL dans la barre d’adresse
    En vrai c’est ça (enfin, j’espère) http://pipes.yahoo.com/pipes/pipe.edit?_id=2eaa68698108cd03191d9bf65003c639

  56. 23/01/2013 19:06

    Super merci pour la réponse, mais je me rends compte que ce n’est pas ce que je souhaite faire.
    Pour vous expliquer ma démarche, j’utilise ce flux rss créé dans un soft de téléchargement via url rss lorsque je met mon rss dans ce soft je n’ai pas de taille de fichier ni de date de création en fouillant sur des rss qui ont ses parametres je me rends compte que tout se passe dans l’item avec url= length=
    Dans le pubDate que vous avez fait les valeurs ne correspondent pas à l’item datecreation.
    Je suis perdu, et j’ai l’impression que vous êtes le seul à maitriser l’outil sur le web je ne trouve pas des personnes qui ont plus ou moins les mêmes besoin que moi.

    Pour résumé j’aimerais que le contenu de mon url, ai les mêmes items qu’un flux rss classique mais sur la taille du fichier et la date je sèche

  57. 23/01/2013 19:19

    @Louis : J’ai travaillé à modifier la description. Mais en fait c’est le titre que vous voulez modifier ? (pour y mettre la date et/ou la taille ?)

  58. 23/01/2013 19:28

    Non je veux utiliser des items rss utilisables par mon logiciel pour qu’il puisse les reconnaitre en tant que taille de fichier et date de création.

  59. 23/01/2013 19:32

    Donc la date doit être mise dans quelle zone (description, title) ? Je l’avais mise dans pubDate, mais apparemment ça ne vous convient pas (ou alors c’est le format de cette zone qui ne vous convient pas)
    Et la taille dans quelle zone ? Je l’avais mise dans description, où doit-elle aller ?

  60. 23/01/2013 19:55

    Si la date doit bien etre dans pubdate mais si vous regardez dans le pubdate sur le debugger cela n’a rien avoir avec la vraie date ca met une date en 2014
    je ne pense pas qu’on puisse exploiter la date,

    Wed, 23 Jan 2013 14:53:44 +0100

    http://url

    Sur ce bout de code extrait d’un vrai flux rss vous pouvez voir que pour connaitre la taille du fichier de l’article du flux il doit y avoir une balise <enclosure url= et length="taille du fichier"

  61. 23/01/2013 19:59

    Apparement on ne peut pas citer un code: voici le bout de code http://suil.x64.me/test/code.txt

  62. 24/01/2013 11:07

    Voyez ça http://pipes.yahoo.com/pipes/pipe.edit?_id=2eaa68698108cd03191d9bf65003c639 et le flux RSS produit http://pipes.yahoo.com/pipes/pipe.run?_id=2eaa68698108cd03191d9bf65003c639&_render=rss
    Logiquement on se rapproche de ce que vous cherchez
    Il y a désormais une balise enclosure avec les éléments demandés
    Et la date est reconnue correctement par le module Loop + Date Builder (pour ce faire, je lui donnais une date en format JJ/MM/AAAA, alors qu’il préfère du AAAA-MM-JJ : avec un peu de regex j’ai interverti d’abord l’ordre des informations, et à présent tout se passe bien)

    Dites-moi ce qu’il reste encore à y faire

  63. 24/01/2013 12:04

    Tout d’abord, encore merci Etienne car j’ai l’impression que vous faites un peu tout, tout seul mais je regarde derrière, justement ici sur ce que vous m’avait fait.
    Sur ma page php j’ai supprimé mon script qui converti les octets en Ko Mo et Go, car le length doit être en octet, du coup maintenant j’ai la taille des fichiers, ça c’est super merci beaucoup.
    Concernant le pubDate j’ai regardé un pipe d’un gars qui as son pubDate qui fonctionne j’ai enregistré son flux généré pour regarder le xml je vous ai détaillé ca sur ce fichier .txt
    http://88.191.159.32/downloads/Films.HD.VF.1080p/rss.txt
    Comme vous pouvez le voir sur son pipe http://pipes.yahoo.com/pipes/pipe.edit?_id=4160d5bc4c13b2db4bf6fb493363f03e
    le pubDate apparait tout le temps et j’ai l’impression qu’il doit etre mis sur pipes sous la forme item.published je vais essayer.

  64. 24/01/2013 12:09

    J’ai modifié l’item en y:published mais rien de mieux, vous pensez que vu que l’heure n’est pas renseignée un lecteur rss ne prend donc pas en compte la date de création?

  65. 24/01/2013 12:17

    @Louis : suite à vos remarques, j’ai encore modifié la gestion de la date.
    Le pubDate est généré comme dans votre modèle pubDateWed, 23 Jan 2013 00:00:00 GMT
    Et la date décomposée en zones est stockée dans item.y:published
    http://pipes.yahoo.com/pipes/pipe.edit?_id=2eaa68698108cd03191d9bf65003c639

  66. 24/01/2013 13:00

    Rien à dire super boulot, je vous remercie du mal dont vous vous êtes donné.
    J’ai exactement ce que je souhaitais dans ma tête

  67. 24/01/2013 13:36

    Pour être tatillon on pourrait prendre en compte l’heure

  68. 24/01/2013 13:54

    @Louis : j’ai dû me planter dans mes copier-coller ? L’url d’entrée des ressources envoie une erreur 404 http://suil.x64.me/downloads/Films.HD.VF.1080p/index4.php

  69. 24/01/2013 13:57

    Ah pardon non, vous ne vous etes pas planté du coup j’ai modifié toute mon arboréscence avec des index.php et non plus 4.
    Donc repartez de celui-ci http://pipes.yahoo.com/pipes/pipe.edit?_id=64b38d939d0798f2e7f77c1583612302
    C’est le dernier que vous m’avez fournis mis à jour avec les nouveaux nom de fichiers, si vous aviez modifié des choses dans votre pipe mettez en url
    http://suil.x64.me/downloads/Films.HD.VF.1080p/index.php

  70. 24/01/2013 14:23

    Celui est le même que je vous ai envoyé non? Il n’y à pas de différence?

  71. 24/01/2013 14:29

    OK, quand je lui dis « Save a copy », il sauvegarde une copie du pipe d’origine, sans prendre en compte les modifs que j’ai faites entre temps.
    Même pas mal
    Ce coup-ci, ça m’a l’air bon
    http://pipes.yahoo.com/pipes/pipe.edit?_id=0fd6e51a32e43381411b03d22205a0c3

    Je supprime les autres pipes

  72. 24/01/2013 14:55

    Dans votre pipe vous aviez oublier d’intégrer la variable $4 apres la date qui est $3-$2-$1
    j’ai donc rajouté  » $4″
    http://pipes.yahoo.com/pipes/pipe.edit?_id=2d38c831a85bae2114e5dccff6dc4704
    Et donc maintenant j’ai tout de fonctionnel, je vous remercie infiniment pour votre travail.
    Si mon cas de figure vous semble pertinent pour créer un flux rss à partir de n’importe quel répertoire contenant des fichiers je peux vous fournir le code php que j’ai utiliser pour lister les fichiers avec les informations de date et de taille.

    Encore merci

  73. Johann permalink
    06/02/2013 19:19

    c’est moi ou il y a plus la possibilité de faire une traduction de ses flux rss avec yahoo pipe???

  74. 06/02/2013 19:43

    @Johann : effectivement, j’ai constaté cela aussi il y a quelques semaines, sans aller chercher plus loin. L’explication est là (avec une solution de contournement) : http://stackoverflow.com/questions/13478118/yahoo-pipes-translation-module-missing

Trackbacks

  1. Des flux RSS à une veille de surface (5) « Posts « Le blog de Voyelle.fr
  2. GROS (yunangie) | Pearltrees
  3. Yahoo Pipes | Pearltrees
  4. Yahoo Pipes : tutoriel 11 (module XPath Fetch Page) « Bibliothèques [reloaded]
  5. Twitter : générer des flux RSS avec la nouvelle API » Stratégies digitales

Commentaires fermés