URL: https://linuxfr.org/news/dites-0-i-a-weboob Title: Dites 0.i à Weboob Authors: Florent Fourcot bubar🦥, ZeroHeure, Nils Ratusznik et Benoît Sibaud Date: 2014年05月22日T08:39:41+02:00 License: CC By-SA Tags: weboob et cozycloud Score: 41 [Weboob](http://weboob.org) (_Web Outside Of Browsers_) est un ensemble d'applications interagissant avec des sites web. Et pour profiter du printemps, voici une nouvelle version de Weboob ! **Weboob 0.i** a en effet été acceptée sur le Web lundi dernier. Cette version bat de nouveaux records de changements, avec 628 _commits_ provenant de 19 contributeurs. Elle apporte la révolution du projet Browser2 (nouveau navigateur pour simplifier l'extraction des données), ainsi que de nombreux nouveaux modules. Les nouveautés sont détaillées en seconde partie de la dépêche. Weboob compte désormais 161 modules, gérant au total encore plus de sites (certains modules pouvant concerner plusieurs sites Web). ---- [Site web](http://weboob.org) [Liste complète des changements](http://weboob.org/news) [Installation](http://weboob.org/install) [Modules](http://weboob.org/modules) [Applications](http://weboob.org/applications/) [Association Weboob](https://symlink.me/projects/weboob/wiki/Association) ---- # Browser2 : un nouveau navigateur Puisque le but est d'extraire des données sur le Web, le navigateur est une composante essentielle du projet. Il permet de simplifier les requêtes HTTP, de gérer les sessions, les cookies, de remplir les formulaires, etc. Le premier navigateur développé (toujours en service) est basé sur la bibliothèque [mechanize](http://wwwsearch.sourceforge.net/mechanize/), avec toute une couche d'abstraction rajoutée par Weboob pour en simplifier l'utilisation. Nous étions cependant limités par cette bibliothèque : la [gestion des formulaires est affreuse](http://people.symlink.me/~rom1/blog/weboob/Browser2_:_Les_formulaires.html), le SSL ne vérifie pas les certificats, le debug des entêtes HTTP était compliqué, etc. Un projet de nouveau navigateur était donc lancé depuis un certain temps, en se basant cette fois sur la bibliothèque [python-requests](http://docs.python-requests.org/en/latest/). Le projet a été retardé plusieurs fois, notamment du fait des nombreux changements d'API de la bibliothèque, empêchant de développer quelque chose de stable. Cette période de maturation de la bibliothèque semble terminée, et le travail a donc pu reprendre. Cette bibliothèque tenant toutes ses promesses, le nouveau navigateur (Browser2) de Weboob est bien plus performant que le précédent. Nous avons pu partir de bases solides pour reconstruire un navigateur. Les formulaires sont ainsi très simples à remplir, les URL sont bien mieux gérées, les entêtes HTTP (envoyées et reçues) sont sauvegardées en mode Debug, et la gestion de la pagination est enfantine. Enfin, le SSL est pleinement fonctionnel. # ListItem : factorisons le code Ce n'est pas lié au changement de bibliothèque, mais cela vient également avec le projet Browser2. En examinant nos expériences de plusieurs années sur le ``parsing`` de pages, et le code des modules, il était évident pour nous que ce dernier était très (trop) répétitif. Nous voulions limiter la duplication du code, et simplifier l'écriture de module. C'est cette réflexion qui a conduit à l'écriture des classes ``ListElement`` et ``ItemElement``, permettant d'obtenir un code très déclaratif. L'extraction des données se base sur des [filtres](http://docs.weboob.org/api/tools/browser2/filters.html), dont la composition permet de presque tout faire. Les modules ont la possibilité de déclarer des filtres personnalisés, mais l'objectif est bien de les centraliser dans le cœur pour les réutiliser au maximum. Il nous reste encore des choses que nous voulons améliorer pour le projet Browser2, mais nous le pensons déjà pleinement utilisable et 24 modules sont maintenant basés dessus. Nous sommes très satisfaits du résultat, notamment quand on observe que la conversion d'un module permet très souvent de diviser le nombre de lignes de code par deux. La documentation est prête, et nous sommes preneurs de tout retour concernant ce navigateur. Pour plus d'informations sur ce sujet, le [Planet du projet](http://planet.weboob.org/) contient de nombreux articles détaillés. # Des mots de passe protégés La protection des mots de passe était souvent un sujet de discussion à l'intérieur et autour du projet. En effet, il n'existait que deux alternatives : stocker le mot de passe dans un fichier en clair, ou bien laisser le champ vide et taper le mot de passe à chaque utilisation. Plutôt que de réinventer la roue avec un gestionnaire de mot de passe propre au projet, il est désormais possible de configurer un appel à une application externe pour obtenir les identifiants d'un compte. La syntaxe rappelle celle d'un script bash, avec l'utilisation des symboles ` pour délimiter la commande. Un exemple d'utilisation est ainsi de remplacer dans le fichier de configuration ``backends`` une ligne : ``` password = 123456 ``` par : ``` password = `pass banques/ing` ``` Les utilisateurs peuvent également utiliser l'outil de configuration `weboob-config` pour mettre à jour ce champ, et les nouveaux utilisateurs auront l'option d'utiliser cette méthode dès la configuration d'un module. # Les reprises de Weboob Si Weboob fournit de (nombreuses) applications, elles n'ont pas vocation à remplacer les applications spécialisées (et bien plus efficaces) existantes. Dans l'idéal, les applications Weboob ne seraient utilisées que pour exporter vers un format standard, et les données traitées par des applications existantes. C'est pourquoi nous sommes toujours heureux de voir des projets intégrant des appels directs à Weboob. C'est courant dans le monde des applications bancaires ([Budgea](http://budgea.com) pour du propriétaire, [CozyCloud](https://www.cozycloud.cc) et son gestionnaire financier, [skrooge](http://skrooge.org/) pour importer les données bancaires ainsi que les factures, etc), mais moins pour les autres applications. Nous profitons donc de cette dépêche pour parler d'un [plugin pour la recherche de vidéos pour Grilo](https://github.com/guyou/grilo-plugins/tree/weboob/src/weboob), et d'un [plugin pour la recherche dans Gnome Shell](https://github.com/guyou/videoob-search-provider). Plus d'informations sur [le blog de l'auteur](http://nathguil.free.fr/nikola/), avec notamment des vidéos de démonstrations. # Les petites nouvelles Dans les petites nouvelles, la conversion de Weboob vers Python 3 a commencé. Nous prévoyons de rendre progressivement compatible le cœur, les applications, et les modules basés sur Browser2. Chaque version de Weboob s'accompagne toujours de nouveaux modules, celle-ci n'est pas en reste avec de nombreux modules permettant d'envoyer/recevoir des images. Un module pour le site [La Centrale](www.lacentrale.fr) fait également son apparition, ainsi que pour le site de rencontre de plus en plus populaire [Tinder](http://www.gotinder.com/). Cela pourrait [sauver une génération](http://madame.lefigaro.fr/societe/ces-jeunes-qui-savent-plus-draguer-sans-tinder-170514-855000). Enfin, on entend parfois sur ce site que le nom du projet est incompatible avec une utilisation professionnelle. La réalité prouve le contraire, avec une prochaine utilisation de Weboob par la Banque Accord (via l'entreprise [Budget Insight](https://www.budget-insight.com/)). On peut même trouver des [offres d'emploi mentionnant Weboob](http://www.emploitic.com/offres/algerie/alger/developpeur-web-38554/). # Association L'association Weboob continue son rôle de pilotage et protection du projet. Elle tiendra son assemblée générale le 12 Juin dans un lieu qui reste à définir. Si vous êtes intéressés, une annonce est à venir sur la liste de diffusion du projet, et le [bas de la page de l'association](https://symlink.me/projects/weboob/wiki/Association) sera mis à jour. # Contributeurs Merci aux contributeurs qui ont participé à cette version : * Adrien Kunysz ; * Ahmed Boussadia ; * Benjamin Carton ; * Florent Fourcot ; * François Revol ; * Gabriel Kerneis ; * Johann Broudin ; * Laurent Bachelier ; * Matthieu Rakotojaona ; * Noé Rubinstein ; * Pierre Mazière ; * Raphaël Rigo ; * Roger Philibert ; * Romain Bignon ; * Vincent Osele ; * Vincent A. ; * Vincent Paredes ; * Vincent Texier ; * Yann Rouillard. [Weboob](http://weboob.org) est un projet qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer et que vous connaissez le Python, n’hésitez pas à [contribuer](https://symlink.me/projects/weboob/wiki/How_to_Contribute).

AltStyle によって変換されたページ (->オリジナル) /