Sur le site leboncoin.fr, il est assez difficile pour un non informaticien de récupérer les images d'une annonce. Il faut se rendre dans la source HTML, repérer les images et réussir à les télécharger. Partant de ce constat, j'ai créé un petit script JavaScript (node.js) qui permet de télécharger toutes les images d'une annonce leboncoin !
Il s'appelle lbc-images.js et est disponible sur ma page GitHub. Le README explique l'installation et l'utilisation du script mais je vais vous détailler ici son fonctionnement.
Installation
Pour pouvoir utiliser le script, vous devez avoir Node.js installé sur votre machine.
Ensuite, téléchargez l'archive du script ou clonez le dépôt sur votre poste.
Lancez un terminal (ou invite de commande) et positionnez-vous dans le répertoire du script puis faites cette commande pour installer les dépendances :
npm install
Utilisation
L'utilisation du script est très basique :
node lbc-images.js URL-DE-L-ANNONCE-LBC
Le dernier paramètre correspond à l'adresse Internet de l'annonce sur le site.
Par défaut, le script créé un répertoire "images" pour y déposer les photos récupérées. Vous pouvez changer ce nom via le paramètre directory
présent en début de script.
Voici un gif animé de l'utilisation du script :
Fonctionnement du script
lbc-images.js utilise plusieurs bibliothèques externes pour fonctionner. En effet, le principe du script est d'accéder à une URL, de parcourir son code source pour trouver les images de l'annonce. Enfin, pour chaque image trouvée, le script les télécharge sur la machine de l'utilisateur.
Pour pouvoir se rendre sur un site, j'ai utilisé le célèbre module NPM request. Il me permet donc de lancer l'URL choisie et d'obtenir le body, en gros, le code source HTML du résultat.
Ensuite, j'utilise la bibliothèque cheerio qui est une implémentation de jQuery pour Node.js. On retrouve donc les fonctionnalités du fameux plugin jQuery pour parcourir et trouver des éléments du DOM.
Pour trouver les images de l'annonce, le script teste 3 méthodes de récupération, selon les versions du site leboncoin.fr.
Pour finir, le téléchargement des images est réalisé grâce au paquet url-download et à l'utilisation de fs pour créer le répertoire "images".
Voilà, le script est assez simple mais efficace :)
Si vous avez des suggestions, améliorations, n'hésitez pas à faire une pull request ou une issue sur le dépôt GitHub ;)