Weboob sort une nouvelle version qui va vous porter chance

Posté par . Édité par ZeroHeure, Davy Defaud et Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC by-sa
48
21
sept.
2017
Internet

Weboob (Web Outside Of Browsers) est un ensemble d’applications et de modules interagissant avec des sites Web.

Ce projet peut également être utilisé comme une bibliothèque permettant de grandement simplifier l’extraction de données des sites Web. Pour du prêt à l’emploi, Weboob compte aujourd’hui 241 modules qui permettent d’accéder à de nombreux sites Web sans passer par un navigateur standard.

Sans être exhaustive, la suite de la dépêche vous propose de découvrir quelques nouveautés de la nouvelle version 1.3, sortie mercredi 20 septembre 2017, que ce soit pour les utilisateurs et utilisatrices ou les développeuses et développeurs. Nous détaillons également la vie du projet en fin de dépêche, notamment notre participation à la PyConFr du 21 au 24 septembre 2017.

Sommaire

Services bancaires et administratifs

Ajout de bénéficiaire pour les virements

Le système de virement avait été revu lors de la précédente version, afin de permettre un processus plus complet notamment lors de la demande d’informations complémentaires (exemple : un code envoyé par SMS). Nous franchissons une nouvelle étape dans la prise en charge de ces virements en permettant désormais l’ajout de bénéficiaires pour les virements (grâce à la sous‐capacité CapBankTransferAddRecipient). Si le site utilise un code unique par SMS, boobank le demandera pour finaliser l’ajout de la même manière que pour les virements. Neuf modules ont déjà cette fonctionnalité activée.

Nouveaux modules

Les modules bancaires sont de nouveau à la pointe grâce au soutien de l’entreprise Budget Insight qui utilise et contribue massivement à Weboob. On compte ainsi dix nouveaux modules bancaires et la liste des changements sur les modules existants est assez impressionnante.

Les modules qui permettent de simplifier la gestion administrative au quotidien ne sont pas en reste. On peut noter le téléchargement des fiches de paie pour tous les fonctionnaires d’état via le module ENSAP, ainsi que le téléchargement des factures du fournisseur de gaz Lampiris. N’oublions pas, pour les Parisiens, la gestion des réservations de livres dans les bibliothèques (module bibliothequesparis). On regrettera en revanche la disparition du module pour les bibliothèques rennaises, qui n’était plus maintenu.

Logements

Il est très difficile de chercher un logement en zone densément peuplée. Les offres sont très nombreuses, souvent dupliquées sur plusieurs sites. Le travail de veille est lourd et les logements partent très vite. C’est ainsi qu’un contributeur a développé Flatisfy, en utilisant les modules immobiliers de Weboob comme backend. L’objectif de cette application est de vous permettre de spécifier des filtres pour votre recherche de logements (secteur, loyer, nombre de pièces, temps de trajet), puis d’offrir une interface conviviale autour de ces résultats, en groupant les doublons et en affichant tous les résultats de façon uniforme, quel que soit le site d’origine de l’annonce. Flatisfy a été testé et approuvé à Lyon et Paris pour l’instant. Pour plus d’informations, vous pouvez regarder cet article de l’auteur.

Le développement de Flatisfy a été l’occasion de tester et mettre à jour les modules de recherche de logements. Outre les corrections de bogues sur les modules existants, les principaux changements sont :

  • l’ajout d’un module pour récupérer les annonces de Foncia ;
  • l’homogénéisation des résultats retournés par les divers modules, afin que les numéros de téléphone soient formatés de façon similaire, et que toutes les informations disponibles soient bien récupérées ;
  • l’ajout d’un nouveau champ utilities sur les Housing, afin de mentionner si les charges sont incluses ou non dans le loyer récupéré par le module ;
  • l’ajout de deux nouveaux champs rooms et bedrooms sur Housing, afin d’avoir une façon homogène entre les modules de représenter le nombre de pièces et de chambres du bien.

Vie privée et --auto-update

Par défaut, les applications Weboob vérifiaient automatiquement les mises à jour des modules quand un module rencontrait une erreur. C’est très pratique dans un projet comme Weboob qui est face à des sites volatiles, mais a des conséquences négatives en termes de respect de la vie privée. Un utilisateur a ouvert un ticket avec un argumentaire détaillé et nous avons pris en compte ses remarques. La mise à jour automatique est donc désormais optionnelle, désactivée par défaut et peut être réactivée à l’aide de --auto-update.

Rappelons qu’il est dans tous les cas toujours possible de rechercher des mises à jour manuellement avec weboob update.

Nouvelle application QGalleroob

Une nouvelle application Qt permet de faire des recherches d’images et de galeries : QGalleroob.
Screenshot QGalleroob

Dans les entrailles du développement

Prise en charge des versions de Python

Le cœur de Weboob ainsi que les applications Weboob sont maintenant compatibles Python 2.7 et Python 3.
De nombreux modules sont déjà compatibles Python 2 et Python 3, et de nouveaux seront portés au fur et à mesure. Les modules n’étant toujours pas compatibles sont dans une grande majorité des modules abandonnés, dont le fonctionnement est probablement douteux. Ils seront donc probablement supprimés dans les prochaines versions.

En fonction des retours sur Python 3 et de l’avancée du portage, il ne restera plus qu’une ou deux versions de Weboob qui prendront encore en charge Python 2.7. Nous prévoyons de changer de numéro majeur de version (et de passer donc à Weboob 2.0) au cours de l’année 2018, et donc à une version qui n’aura plus Python 2.7.

Nouveaux filtres

Les filtres sont des aides essentiels dans les modules Weboob, ils permettent notamment de simplifier l’extraction des données en utilisant une syntaxe très déclarative (il y a beaucoup de magie dedans). De nouveaux filtres spécialisés font leur apparition dans cette version :

  • AbsoluteLink : construit une adresse URL absolue à partir d’un lien HTML (contrairement au filtre Link qui retourne la valeur brute) ;
  • FormValue : permet d’obtenir la valeur courante d’un élément de formulaire (par exemple dans un tag select) ;
  • HasElement : retourne une valeur suivant la présence ou non d’un élément HTML ;
  • QueryValue : retourne la valeur d’un paramètre contenu dans la partie query d’une URL (par exemple, value pour url?param=value).

Outils de débogage

Deux nouveaux mécanismes ont été ajoutés pour aider à trouver les problèmes quand on écrit un module.

Dans une session de débogage avec pdb (ou temporairement dans le code d’un module) :

>>> import weboob
>>> weboob.browser.elements.magic_highlight(self.el.xpath('.//div[has-class("foo")]'))

Cela ouvrira la page courante dans un navigateur pour déboguer, avec tous les éléments correspondants à l’expression XPath, mis en surbrillance. Il est possible de mettre également en surbrillance toutes les zones d’une page qui sont extraites par le module. Pour cela, il faut ajouter _highlight_el = 1 à la configuration du module que l’on veut déboguer.

Un autre outil très pratique est l’exportation de sessions et son chargement via une extension Web dans Firefox ou chrome. Dans le dossier contrib, un dossier complet nommé webextension-session-importer permet cette performance (voir le fichier README pour plus de détails).

Liste exhaustive des nouveaux modules

  • bibliothequesparis (CapBook) ;
  • billetreduc (CapCalendarEvent) ;
  • blogspot (CapMessages) ;
  • bnppere (CapBank) ;
  • btpbanque (CapBank) ;
  • capeasi (CapBank) ;
  • cices (CapBank) ;
  • cityscoot (CapDocument) ;
  • cmes (CapBank) ;
  • cmmc (CapBank, CapContact) ;
  • ensap (CapDocument) ;
  • erehsbc (CapBank) ;
  • esalia (CapBank) ;
  • foncia (CapHousing) ;
  • lameteoagricole (CapWeather) ;
  • lampiris (CapDocument) ;
  • larousse (CapTranslate) ;
  • linebourse (CapBank) ;
  • myfoncia (CapDocument) ;
  • pixabay (CapFile, CapImage) ;
  • pradoepargne (CapBank) ;
  • tumblr (CapGallery) ;
  • zerobin (CapPaste).

Communauté

Dernière assemblée générale

Le projet Weboob est protégé par une association qui a pour but de soutenir le développement et de permettre l’indépendance du projet par rapport à des entreprises qui peuvent être très contributrices (on les en remercie beaucoup). Si cette association n’est pas toujours très active, nous avons réuni une assemblée générale le 10 juillet 2017 à Paris. Le bureau de l’association (qui nomme notamment le release manager, ayant le pouvoir d’accepter ou refuser des contributions) a été entièrement reconduit.

Les membres du bureau sont cependant tous investis depuis longtemps dans le projet et seraient très volontiers prêts à céder leurs places à de nouveaux contributeurs ou contributrices.

PyConFr 2017

Les développeurs Weboob seront présents en force à cette édition de PyConFr ! L’ensemble des membres du bureau de l’association sera notamment présent.

Un atelier sera animé le samedi 23 septembre 2017 de 14 h à 16 h, ce sera l’occasion de développer votre premier module. Deux conférences seront présentées le dimanche 24 septembre 2017 de 15 h à 16 h :

N’hésitez pas à passer nous voir, poser des questions, faire vos premières contributions, discuter de l’avenir du projet, etc.

Contributeurs

Merci aux contributeurs qui ont participé à cette version :

  • Baptiste Delpey ;
  • Barthélemy Gouby ;
  • Benjamin Bouvier ;
  • Benjamin Carton ;
  • Benjamin Tampigny ;
  • Christophe Lampin ;
  • David Kremer ;
  • Edouard Lambert ;
  • Florent Fourcot ;
  • Florian ;
  • Florian Duguet ;
  • François Revol ;
  • Frédéric Lépy ;
  • Guillaume Lundy ;
  • Guillaume Seznec ;
  • James Galt ;
  • Jean Walrave ;
  • Jonathan Schmidt ;
  • Juliette Fourcot ;
  • Laurent Bachelier ;
  • Louis Debeve ;
  • Matthieu Weber ;
  • Nicolas Cornu ;
  • P4ncake ;
  • Phyks (Lucas Verney) ;
  • Raymonde Philibert ;
  • Roger Philibert ;
  • Romain Bignon ;
  • Sébastien Jean ;
  • Simon Lipp ;
  • Théo Dorée ;
  • Vincent Ardisson ;
  • Vincent Paredes ;
  • ZeHiro.

Weboob est un projet qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer et que vous connaissez le Python (ou pas, des besoins sur la documentation et la qualité des icônes se font sentir), n’hésitez pas à contribuer.

  • # événements ?

    Posté par (page perso) . Évalué à 3 (+1/-0).

    Salut,

    bravo pour cette version.

    Je me demandais si Weboob était capable de surveiller une page et réagir à des événements, notamment un nouvel élément DOM qui apparaît.

    Un exemple serait une page web gérant une messagerie : est-ce qu'un nouveau message qui apparaît pourrait déclencher une callback par exemple ?

    Je sais que ça n'est pas du tout l'objectif de base, et que ça complique énormément (notamment parce qu'il faut interpréter du Javascript, mais j'ai cru comprendre que Weboob commençait à le faire dans certains cas), je me demande juste si c'est possible/envisageable.

    • [^] # Re: événements ?

      Posté par (page perso) . Évalué à 3 (+2/-0).

      Tu veux dire quand une page web est mise à jour dans un navigateur ? Dans le but d'avoir quelque chose en temps réel ?

      Même avec ce qu'on fait actuellement, on n'a pas vraiment d'environnement de navigateur avec JavaScript et DOM donc pas vraiment.

      On pourrait éventuellement suivre les websockets et autres machins sans interpréter le JavaScript derrière. Mais à l'heure actuelle il n'y a rien pour le faciliter dans Weboob.

      • [^] # Re: événements ?

        Posté par (page perso) . Évalué à 3 (+1/-0).

        je pensais indépendamment d'un navigateur (ou alors avec quelque chose headless), et oui pour avoir du temps réel.

        Si, par exemple, on est dans une application de chat proprio, qu'il n'y a pas d'API ni rien, pouvoir utiliser weboob pour faire une passerelle serait un bon moyen pour avoir une solution rapide le temps de faire un reverse engineering sur le protocole. Oui avec les Websocket ça serait bien aussi.

        Je me doute que ça n'est pas possible à l'heure actuelle (vous n'en avez pas l'utilité a priori), mais je me demandais si c'était envisageable avec l'archi de Weboob, et apparemment oui donc :)

        • [^] # Re: événements ?

          Posté par (page perso) . Évalué à 1 (+0/-0).

          Comme on garde bien un module en mémoire ça me paraît tout à fait possible de gérer des websockets (après, la dernière fois que j'ai essayé d'en faire côté client en Python, j'ai pas réussi).

          Je me doutais qu'il s'agissait de chats ! Ce serait sûrement un truc à faire si on peut le brancher à des applications existantes.

          • [^] # Re: événements ?

            Posté par . Évalué à 4 (+2/-0).

            J'utilise déjà weboob pour surveiller mes comptes en banque et je découvre à l'instant le module leboncoin. J'avais écrit quelque chose de similaire en javascript pour récupérer les numéros de téléphone (dont l'affichage est déclenché par un clic) en utilisant CasperJS ( http://docs.casperjs.org/en/latest/ ). Très simple à manipuler comme browser headless, même quand on est pas un pro du javascript. Ça peut servir…

  • # BI

    Posté par . Évalué à -10 (+8/-32).

    Ce que l'on peut faire de pire en sécurité (centraliser les identifiants et mots de passe) combiné avec ce qu'on peut faire de pire dans le genre start-up (infantiles, alcoolisme, sexisme, homophobie, patron psychopathe qui se prend pour Bill Gates, l'autre en pleine névrose), pitié, laissez les mourir sans leur faire de pub.

    • [^] # Re: BI

      Posté par . Évalué à 4 (+5/-1).

      Ce que l'on peut faire de pire en sécurité (centraliser les identifiants et mots de passe)

      C'est pas ce que font déjà beaucoup, beaucoup de personnes avec leurs téléphones modernes ? J'dis ça, j'dis rien, hein.

      • [^] # Re: BI

        Posté par . Évalué à -8 (+4/-12).

        En masse, sur une plate-forme tierce ?

        • [^] # Re: BI

          Posté par . Évalué à 5 (+4/-1).

          Comment ça sur une plateforme tierce ?

          Mon mot de passe weboob est stocké dans mon /home, exactement comme mes mots de passe mémorisés par Firefox.

      • [^] # Re: BI

        Posté par . Évalué à 3 (+1/-0).

        En quoi c'est un argument ? Y en a qui font pas bien alors je peux faire pas bien ?

    • [^] # Re: BI

      Posté par . Évalué à 7 (+7/-2).

      Pourquoi cette haine envers BI ? Ce n'est pas le premier message de la sorte que tu postes.

      • [^] # Re: BI

        Posté par (page perso) . Évalué à 1 (+1/-2).

        bin le stockage des mots de passe en centralisé, c'est un peu digne de google qui te permet d'unifier tes boîtes mails (ça c'est la vue optimiste) mais aussi d'usurper ton identité, effectuer d'autres actions que simplement afficher tes mails (les lire au passage par exemple…).

        tu te prendrais en photo^Wselfie avec ta carte bleue vue de devant et avec le code au dos pour la mettre sur flicker ensuite ?

        on ne parle que de ton compte en banque, plaie d'argent n'est pas mortelle…

    • [^] # Re: BI

      Posté par . Évalué à 8 (+6/-0).

      T'en a dis trop ou pas assez. Lien ?

      LinuxFr, parfois c'est bien de la MERDE : http://linuxfr.org/news/cpp17-exprime-la-virgule-flottante-en-hexadecimal-et-offre-des-cadeaux-aux-lecteurs-de-linuxfr-org#comment-1686201

  • # Module Axabanque

    Posté par . Évalué à 2 (+0/-0).

    Bonjour,
    j'aime bien weboob, mais je n'arrive pas a faire tourner correctement le module Axabanque …
    Quelqu'un a réussi ?

  • # charges

    Posté par . Évalué à 3 (+2/-1).

    l'ajout d'un nouveau champ utilities sur les Housing afin de mentionner si les charges sont incluses ou non dans le loyer récupéré par le module ;

    Pourquoi ne pas donner le prix chargé tout simplement ? Franchement, le loyer hors-charge je n’en ai rien à carrer.

    • [^] # Re: charges

      Posté par . Évalué à 7 (+5/-0).

      Car il est pas toujours disponible, tout simplement. Le loyer charge comprise est toujours prioritaire, mais il faut qu'on remonte l'information si les charges ne sont pas comprises.

  • # Nom ?

    Posté par . Évalué à -8 (+2/-11).

    Et sinon ? Toujours pas de changement de nom prévu ?

    • [^] # Re: Nom ?

      Posté par . Évalué à 7 (+6/-1).

      Pourquoi donc ?

      • [^] # Re: Nom ?

        Posté par . Évalué à -2 (+2/-5).

        Bah… J'ai hésité à répondre…

        Faisons sobre : https://fr.wikipedia.org/wiki/Weboob

      • [^] # Re: Nom ?

        Posté par . Évalué à -7 (+1/-5).

        • [^] # Re: Nom ?

          Posté par (page perso) . Évalué à 8 (+11/-5).

          Le sexisme devient comme l'antisémitisme, si tu n'es pas d'accord avec la personne sur un sujet qui n'a rien à voir, hop une attaque (hors sujet) avec un mot (hors sujet) à la mode.
          Rappel : si tu n'es pas d'accord avec la politique d’Israël, c'est que tu es antisémite (le rapport? aucun, normal). Ici, même logique de réflexion (rappel : les blagues, même graveleuses, ne sont pas le monopole des gens ayant une paire de couilles, c'est sexiste de penser que c'est le cas).

          Bon, sinon, rien de nouveau au fil des ans, îlot de stabilité dans le ridicule :).

          PS : je ne cautionne pas forcément de faire des blagues de ce type, pour d'autres raisons, ça me fait juste sourire (ou rendre triste sur le sexisme des gens qui se croient anti-sexistes) ces accusations de sexisme qui se basent sur des préjugés sexistes (qui est sexiste en vrai?).

          • [^] # Re: Nom ?

            Posté par . Évalué à -7 (+4/-13).

            rappel : les blagues, même graveleuses, ne sont pas le monopole des gens ayant une paire de couilles, c'est sexiste de penser que c'est le cas

            En parlant de rappel, tenir des propos sexistes ou agir de façon sexiste n'a aucun rapport avec le fait d'avoir une paire de couille ou pas. C'est stupide de penser que c'est le cas.

            PS : Ça me fait sourire ces rappels qui se basent sur des réflexions limitées intellectuellement.

            • [^] # Re: Nom ?

              Posté par . Évalué à 2 (+4/-3).

              À propos de limitation intellectuelle, je me permets de te signaler qu'on écrit "une paire de couilleS"
              Tu as déjà du mal avec le masculin et le féminin, je vois qu'en plus la distinction entre singulier et pluriel te pose problème…

    • [^] # Re: Nom ?

      Posté par . Évalué à 4 (+5/-3).

      Ben tu te sors les doigts du cul et tu le fork en renommant tout ce que tu veux.

      • [^] # Re: Nom ?

        Posté par . Évalué à 9 (+7/-0).

        tu te sors les doigts du cul

        Faudrait créer Fingoob (fingers out of the butt)

        splash!

    • [^] # Re: Nom ?

      Posté par (page perso) . Évalué à 6 (+6/-1).

      C'est déjà fait ! Il existe contrib/fork.py pour ceux qui souhaitent utiliser webisounours à la place.

      • [^] # Re: Nom ?

        Posté par . Évalué à 3 (+1/-0).

        du coup ce serait quoi l'acronyme ?

        splash!

        • [^] # Re: Nom ?

          Posté par . Évalué à 1 (+0/-0). Dernière modification le 26/09/17 à 16:07.

          WePedoBear ?

          edit: ah non, zut, c'est pas un acronyme…

          L'acacia acajou de l'académie acoustique est acquitté de ses acrobaties. Tout le reste prend "acc".

        • [^] # Re: Nom ?

          Posté par . Évalué à 1 (+3/-3).

          Weboob Is an Outrageous & Ugly Name or Undoubtly Rude & Sexist ?

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.