Connaître le prix moyen d’un objet sur leboncoin.fr avec Python 3 et Request

Arrêtez de copier le net. Scrapez le.

 

Connaître le prix moyen d’un objet sur leboncoin.fr avec Python 3 et Request

leboncoin-scraping-tn3tyfd

Lorsque l’on vend un produit sur www.leboncoin.fr, il peut être (franchement) utile de connaître le prix moyen de cet objet, de sorte que lors de la vente, on puisse le vendre à bon prix. Avec  161 millions de visites par mois, et +25 millions d’offres recensées, le site est la cible parfaite… En collectant les données du site de petites annonces français grâce à Python et Requests, et en utilisant des technologies de web-scraping, nous allons créer un script dynamique, qui permette d’extraire le prix moyen d’un objet à partir du mot clé qui le désigne.

Tout va être expliquer à la suite. A noter que nous récupérerons l’ensemble des données sur toute la France, mais qu’il serait possible de cibler une région, avec un léger d’ajustement.

Quelle donnée allons nous extraire ?

Rendons-nous d’abord sur la page avec l’ensemble des offres à extraire. Pour le bien de cet exemple, nous prendrons la page après avoir cherché le mot clé ‘iphone7’. Voilà l’url, simple et explicite : https://www.leboncoin.fr/recherche/?text=iphone7.

Concernant les champs, nous allons en extraire un unique, le prix !

Et maintenant, un screenshot afin de visualiser la présence de l’élément sur le site web :

leboncoin-scraping-9wq6p4f

Avant de commencer à construire le scraper, nous devons trouver où les données sont présentes dans les balises HTML de la page Web. Il faut connaître le fonctionnement des balises HTML de la page pour pouvoir faire ça.

Nous allons supposer que vous avez déjà des bases en HTML et que vous connaissez le langage Python. Vous n’avez pas besoin de plus de connaissances pour réaliser ce tutoriel.

Si vous ne connaissez ni le HTML, ni le CSS, ni le XPATH, ni le Python, prenez le temps de lire Premiers pas avec HTML – Mozilla Developer Network, Tutoriel CSS W3 School, XPath Tutorial – W3Schools,  et https://www.programiz.com/python-programming

Nous allons inspecter le code HTML de la page Web et localiser les données, en suivant la logique suivante :

  1. Inspecter l’élément
  2. Trouver la balise correspondante

 Inspecter l’HTML

Ouvrez votre navigateur Chrome, et rendez-vous sur la page de l’ensemble des produits de www.leboncoin.fr, à l’adresse évoquée plus haut. Vous pouvez le faire avec d’autres navigateurs, mais ce tutoriel se fait sur Chrome, et facilitera votre apprentissage.

Faites, un clique droit, puis cliquer sur Inspecter.

leboncoin-scraping-z8n52ln

Nous allons maintenant chercher le tag XPATH de chaque élément, avant de lancer notre scraper. Pour faciliter la recherche, cliquer sur le curseur en bas à gauche. Passez ensuite votre souris sur les éléments que nous avons cités en introduction.

En fouillant un peu, on remarque rapidement que le XPATH qui renvoie le prix sur le site est le suivant :

leboncoin-scraping-ln392en

Installer Python et Request

Pour installer Python et PIP, vous pouvez vous rendre sur le post que nous avons déjà fait à ce sujet : https://lobstr.io/index.php/2018/02/15/installer-librairies-python-mac-os/

Pour installer Requests, et les autres librairies utilisées dans le code, il suffit d’ouvrir votre commande, et de taper les lignes de code suivante :

Pour plus de renseignements sur Requests et ses fonctionnalités avec Python, leur documentation est fournie et très utile : http://docs.python-requests.org/en/master/

Le code

Pour exécuter le script, ouvrez votre éditeur Sublime Text 3, copier-coller le code ci contre, et enregistrez le sous le nom de leboncoin_avgprice.py. Si vous ne savez pas comment l’installer, rendez-vous ici : https://lobstr.io/index.php/2018/02/08/comment-pourquoi-installer-sublim-text/

Dans votre commande, placez ensuite la ligne suivante :

Vous pourrez ensuite observer directement depuis votre console, le résultat suivant :

leboncoin-scraping-3ib4pqk

Non vous ne rêvez pas. Quasi deux secondes pour un prix moyen du mot clé ‘iphone7’, sur les 100 premiers items : 382.94€ !

Vous pouvez également télécharger le code sur notre Github, à l’adresse suivante : https://gist.github.com/Lobstrio/4b00512ecc37c2df4ece0b5b2c9773a4. N’hésitez pas à nous indiquer dans les commentaires, ou sur le github, si le script fonctionne bien chez vous aussi.

Limitations connues

De nombreuses limitation malheureusement, pour un script qui se veut avant tout éducatif. Le script permet de collecter le prix moyen, mais il le collectera uniquement sur les 100 premiers items. Par ailleurs, si l’on peut rentrer le keyword de son choix, il faut veiller à ne pas rentrer un keyword avec un accent. Enfin, la recherche par mot clé est hasardeuse, et renvoie des items très variés. Pour le mot clé ‘iphone7’, on retrouve des coques, des chargeurs… il faudrait trier les éléments à partir des titres, en réalisant du text mining.

Si vous avez besoin d’aide pour scraper des milliers de données de façon récurrente et à grande échelle, vous pouvez nous contacter via le formulaire ci-dessous :

Avertissement: Tout code fourni dans nos tutoriels est destiné à des fins d’illustration et d’apprentissage uniquement. Nous ne sommes pas responsables de la façon dont il est utilisé et n’assumons aucune responsabilité pour toute utilisation préjudiciable du code source. La simple présence de ce code sur notre site n’implique pas que nous encourageons le scraping ou l’extraction de données des sites référencés dans le code et le tutoriel qui l’accompagne. Les tutoriels ne font qu’illustrer la technique de programmation des scrapers web pour les sites internet populaires. Nous ne sommes pas obligés de fournir un support pour le code, cependant, si vous ajoutez vos questions dans la section des commentaires, nous pouvons vous y répondre périodiquement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *