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.
tl;dr
Et voilà une vidéo complète!
https://www.loom.com/share/f89ee0e664e34be6ac0ad908a414b7da5 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:
https://docs.google.com/spreadsheets/d/1hjPjyo68C7As7CR5sKraPWcIECkEEeZXvz88pPnvPR4/edit?usp=sharingOn 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.
Légal
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!
En effet, selon l’article L342-3 du Code de la Propriété Intellectuelle, la collecte de données publiques est légale, et ce à deux conditions:- accès licite aux données
- collecte non “substantielle”
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!
Si vous voulez plus d’informations, on vous invite à consulter notre article disponible ici, où on explore la question de la légalité du scraping sur leboncoin en 2022 plus en détails.Tutoriel Complet
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:
- récupération de l’URL de recherche principale leboncoin
- découpage de l’URL par département
- lancement du robot de scraping lobstr
Allons-y!
Récupération de l’URL de recherche principale leboncoin
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:
https://www.leboncoin.fr/recherche?category=2&brand=PorscheOKK 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.
Découpage de l’URL par département
Ici, nous avons deux solutions à notre disposition:
- en utilisant notre joli outil de découpage no-code (facile!)
- avec une googlesheet
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!
1. Outil de découpage no-code
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à:
Ensuite, rendez-vous sur la page de notre joli outil de découpage d'URLs leboncoin.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.
Vous pouvez vous rendre immédiatement à la partie suivante.2. Googlesheet et formule de découpage
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:
https://www.leboncoin.fr/recherche?category=2&locations=d_11%2Cd_1&brand=PorscheMais 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:
- category — égal à 2
- brand — égal à Porsche, sans surprise
- locations — égal à d_11%2Cd_1
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:
https://www.leboncoin.fr/recherche?category=2&locations=d_1&brand=PorscheEt 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:
https://docs.google.com/spreadsheets/d/1hjPjyo68C7As7CR5sKraPWcIECkEEeZXvz88pPnvPR4/edit#gid=0Et 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.
Lancement du robot de scraping lobstr
Last but not least, il est temps de scraper les données!
D’abord on se connect sur lobstr, on se connecte sur son compte, et on clique sur le gros bouton rouge au milieu: Create New Cluster: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:
- Manually, pour lancer une collecte à la main immédiatement
- Repeatedly, pour lancer une collecte à intervalles réguliers
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?
Enjoy
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:
- 8500 lignes de données
- 50 attributs distincts — inclus le nombre de kilomètres, le type de moteur, le coloris
- collecté en 10 heures seulement
Exhaustif, structuré, et immédiatement exploitable. Sans avoir écrit une seule ligne de code.
Un joli bébé de 35 MB de données. Accessibles en ligne ici.Fantastique!
Conclusion
Et voilà, c’est terminé!
Grâce au robot de scraping lobstr Leboncoin Search Result, et à une technique de découpage d’URLs de recherche par département, on a donc contourné la limitation d’affichage de 3500 résultats par URL de recherche.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.