Comment scraper toutes les annonces de Porsche sur leboncoin ?
Pas moins que ça.
Pourtant, lorsqu’on se rend à la page 100, impossible d’accéder à la page 101. A compter de 35 annonces par page, ça signifie qu’on peut récupérer 3500 annonces, et pas une de plus.
Dans ce cas là, que faire?
Dans ce tutoriel, on va voir comment récupérer l’intégralité des annonces d’une catégorie, et contourner la limite d’affichage de 3500 résultats par URL de recherche. Et ainsi dénicher la bonne affaire, parmi tout ce que la France entière compte de bonnes affaires.
En piste.
Et voilà une vidéo complète!
5 minutes, ni plus ni moins.
Et en quelques mots, comment est-ce que cela fonctionne?
Et bien c’est très simple: puisque le site nous limite à 3500 résultats par URL de recherche, nous allons simplement multiplier le nombre d’URLs de recherche à partir desquels nous allons récolter les données.
Plus précisément, nous allons d’abord récupérer l’URL de recherche sur la France entière, puis procéder à un découpage par département.
Plus concrètement, on part d’un URL unique, avec plus de 8000 résultats de recherche:
https://leboncoin.fr/porsche
Et on ajoute un paramètre, pour obtenir en sortie une liste de 95 URLs, à compter de 1 URL par département français:
https://leboncoin.fr/porsche/**dpt1** https://leboncoin.fr/porsche/**dpt2** … https://leboncoin.fr/porsche/**dpt95**
Comme illustré sur cette jolie infographie:
Et voilà le tour est joué!
Ce fichier Googlesheet permet de générer rapidement les URLs de recherche découpé par département:
On va regarder comment tout ça fonctionne dans la suite de cet article — et finir par scraper l’intégralité des annonces de Porsche en France, présente sur leboncoin.
Mais d’abord, est-ce que c’est légal? Après tout, récupérer toutes les annonces d’une base de données, ça peut s’apparenter à du vol.
Et bien oui, c’est entièrement légal!
Les données sont accessibles publiquement, pour toute personne qui visite le site, sans aucun ajustement particulier. Tout utilisateur jouit donc bien d’un accès licite. Par ailleurs, par rapport au caractère substantiel, leboncoin compte, si l’on n’en croit le site à la date où est écrit cet article, plus de 60 millions d’annonces uniques.
Au regard de ce chiffre colossal, les 8500 annonces de voitures allemandes représentent moins d’1 annonce sur 10 000. Définitivement non substantiel.
Top!
La collecte est légale, et on va procéder en découpant l’URL de recherche principale par département.
Mais comment ça va se passer exactement?
On va procéder comme suit:
Allons-y!
Première chose, on va récupérer l’URL de recherche principale leboncoin, celui qui renvoie l’ensemble des annonces de la France entière. Soit plus de 8500 résultats.
On se rend d’abord sur leboncoin, on sélectionne la catégorie Véhicules, puis Voitures. Ensuite, au niveau de la marque, on sélectionne Porsche.
Enfin, on récupère l’URL présent dans notre navigateur:
OKK top!
Maintenant, comment convertir cet URL unique en une liste de 95 URLs, à compter d’1 URL par département?
C’est ce qu’on va voir dans la partie suivante.
Ici, nous avons deux solutions à notre disposition:
La seconde stratégie permet de comprendre le pourquoi du comment. La première de faire ça facilement, en quelques secondes seulement.
On va voir ensemble les deux méthodes!
L'outil de découpage no-code permet de générer, à partir d'une URL leboncoin donnée, autant d'URLs qu'il existe de départements et/ou de régions. En 2 cliques, à partir d'1 unique URL, vous allez générer une liste de plusieurs dizaines d'URLs de recherche, et ainsi contourner la limite d'affichage de biens leboncoin.
D'abord, rendez-vous sur leboncoin, réalisez votre recherche, et récupérer dans la barre de recherche du navigateur l'URL de recherche leboncoin :
Ici, nous avons choisi cet URL là:
https://www.leboncoin.fr/recherche?category=8
Dans le champ 'URL de Départ', collez l'URL récupéré (1), choisissez la granularité de votre découpage — departement ou région (2), et cliquer sur 'Diviser' (3) :
Attention, le nombre d'URLs obtenu dépend de la granularité de votre découpage. Par département, vous allez obtenir 1 URL de recherche par département, soit 95 URLs au total. Par région, vous allez obtenir 1 URL de recherche par région, soit 20 URLs au total. Privilégiez donc le découpage par département pour les grosses recherches > 300k résultats, et par région pours les recherches avec un volume plus modeste > 50k résultats.
Et voilà, les URLs sont générés automatiquement ! Cliquez sur 'Téléchargez un fichier' - et profitez immédiatement de 95 URLs de recherche, 1 pour chaque département :
Cela va télécharger un fichier sur votre ordinateur, avec un fichier qui contient 95 URLs de recherche proprement découpés :
Vous avez donc, en 2 cliques, générer à partir d'1 unique URL de recherche qui ciblait la France entière, 95 URLs de recherche, avec 1 URL par département. Fini les limites d'affichage. Sans effort et en 2 cliques.
Dans cette partie, on va voir comment faire ça avec une Googlesheet, et une simple formule Excel.
Lorsqu’on se rend sur leboncoin, et qu’on ajoute les 2 premières régions de France, l’Ain, et l’Aude, et que l’on clique sur Rechercher, on obtient l’URL suivant:
Mais qu’est-ce que ça veut bien dire?
En regardant l’URL de plus près, on se rend compte qu’il est constitué de 3 paramètres:
Mais que signifie ce %2C?
Après une rapide recherche Google, ce sigle barbare est la façon dont on représente une virgule au sein d’un URL:
On peut donc réécrire cette partie de l’URL comme suit:
_locations=d_11,d_1_
Maintenant, on va supprimer la valeur d_11, conserver uniquement la valeur d_1. On obtient l’URL suivant:
Et en l’ajoutant dans le navigateur, eureka! On obtient bien la recherche avec un département unique: l’Ain.
Maintenant, il suffit de générer autant d’URLs que de département, en remplaçant simplement le 1, par le numéro du département français concerné:
https://www.leboncoin.fr/recherche?category=2&locations=d_1&brand=Porsche https://www.leboncoin.fr/recherche?category=2&locations=d_2&brand=Porsche … https://www.leboncoin.fr/recherche?category=2&locations=d_95&brand=Porsche
Pour ça, on va simplement ouvrir une Googlesheet, et coller l’URL de recherche avec 1 seul département. Ensuite, on génère dans une seconde colonne, la liste des départements de 1 à 95.
Enfin, avec une simple formule de concaténation Excel, on génère de façon dynamique l’intégralité des URLs leboncoin des 95 départements.
Voilà la formule Excel en question:
="[https://www.leboncoin.fr/recherche?category=2&locations=d_"&B2&"&brand=Porsche](https://www.leboncoin.fr/recherche?category=2&locations=d_"&B2&"&brand=Porsche)"
Le fichier de découpage accessible ici:
Et une courte vidéo de démo est disponible, juste là:
Et voilà!
On finit par télécharger le fichier au format .csv, qu’on va garder précieusement pour la suite:
On a maintenant 95 URLs de recherche leboncoin.
Avec, a priori pour chacun, moins de 3500 résultats de recherche. Place à la collecte.
Last but not least, il est temps de scraper les données!
Puis, dans la barre de recherche, on tape Leboncoin, et on sélectionne le crawler qui va nous permettre de récupérer les données des annonces: Leboncoin Search Export.
OK le cluster est créé!
Maintenant, on va ajouter les URLs de recherche précédemment récupérées. Dans la partie Add tasks, on clique sur Upload file, puis on choisit le fichier téléchargé tout à l’heure.
Après quelques secondes, les 95 URLs de recherche sont proprement uploadés:
Magnifique!
Dans la partie Settings, rien de notable, on peut laisser tel quel, il suffit de cliquer sur Save:
Dans la partie Notifications, on peut sélectionner On Success (1). De cette façon, on va recevoir une notification par mail, une fois que la collecte est terminée.
On peut ensuite cliquer sur Save (2):
Les bonnes nouvelles méritent d’être annoncées dans la joie!
Enfin, dans la partie Launch, deux choix se proposent à nous:
Ici, on a besoin de récupérer les données une seule fois. On clique donc sur Manually, puis sur Save & Extract, et enfin le bouton Yes:
Et voilà, la collecte est lancée!
Le robot de scraping Leboncoin va visiter chaque département, et récupérer l’intégralité des annonces présentes, avec +50 attributs distincts par annonce. A compter de 35 annonces par minute. Et après?
Le robot de scraping est lancé, et la collecte se déroule sur nos serveurs. Il n’y a plus qu’à attendre!
Les données vont s’afficher immédiatement sur votre écran, dans la partie Result:
Le robot de scraping Leboncoin collecte 1 page de résultat par minute, soit 35 annonces collectées par minute. Après 10h30 de collecte, vous allez donc récupérer les données de +8500 véhicules distincts.
La limitation d’affichage a été contournée.
L’intégralité des données des Porsches de Leboncoin en France ont été collectées.
Vous pouvez ensuite cliquer sur Download, et en ouvrant le set de données avec Excel, vous obtenez un superbe set de données:
Avec:
Exhaustif, structuré, et immédiatement exploitable. Sans avoir écrit une seule ligne de code.
Fantastique!
Et voilà, c’est terminé!
Et collecter les 8500 annonces de bolides allemands présents partout en France.
A nous les pointes de vitesse sur l’autoroute de Karlsruhe cet été.
Happy scraping!
🦀
Co-founder @ lobstr.io depuis 2019. Fou de la data et amoureux zélé du lowercase. Je veille à ce que vous ayez toujours la donnée que vous voulez.