Scrapping LBC, obtenir la moyenne des prix

Bonjour à vous tous !

Je suis débutant en codage, j’aimerais savoir s’il existe un moyen ou un logiciel pour extraire toutes les données du site Leboncoin et de faire une moyenne du prix de vente de l’article.

Exemple : Je souhaite savoir le prix moyen d’un Iphone 7 sous blister, je rentre « Iphone 7 sous blister » et il me sort le prix moyen en fonction de la france ou d’une région particulière…

Si vous avez des informations à me donner ou un code à me donner je suis preneur !

Merci d’avance pour vos message :slight_smile:

Easy de scraper pour récupérer ces infos.
Tu peux faire un get pour récupérer ses infos.
Même si tu es débutant ça devrait être à ta portée.

Faire un « Get » ?
Ou puis-je trouver les informations pour faire ce fameux get ?

  • Tu vas sur chrome
  • tu ouvres la console
  • tu vas dans l’onglet network
  • tu vas sur leboncoin
  • tu regardes les requêtes dans l’onglet network
1 « J'aime »

Merci pour tes informations claires et précises.
Mais une fois que je suis dans l’onglet network et que la page à charger, comment je traite les informations ?

Quel langage utilise tu pour développer ?

La réponse de @boristchangang sous entend que tu as un relatif niveau en programmation, i.e que tu sais utiliser une librairie HTTP pour simuler un appel que tu aura vu dans ta console Chrome, que tu sais ce que c’est qu’une query string, et puis que tu sais extraire des informations dans le code HTML via des selecteurs CSS ou selecteurs XPath à l’aide d’une librairie appropriée.

Si tout ça ne te dit rien, formes toi !
J’ai écris plusieurs articles sur le web scraping sur mon blog, je t’invite a les lire, c’est en Java, langage que je déconseille au débutant, mais tu pourra tout appliquer en Python (langage que je conseille au débutant :slight_smile: )

J’ai aussi écrit un livre si tu veux creuser le sujet.

Bon courage.

1 « J'aime »

Malheureusement, à part te former sur le sujet et monter en compétences sur la partie code, et algo scraping, par l’intermédiaire d’articles/cours dédiés en ligne à ce sujet, je ne vois pas trop d’autres solutions.

1 « J'aime »

Il y a un peu plus de 6 mois j’ai développé dans mon coin un script qui permet de ramener tout ce que tu veux de tous les rayons leboncoin. Mon script que j’ai appelé

KOINKOIN_LBC crawle/scrape leboncoin, crée un csv et un tableau html dynamique/jquery avec popup et tris MultiColonnes.

Il y a 3 mois je scrapais/croisais même mon tableau avec la RATP pour récupérer l’itinéraire entre l’utilisateur et le vendeur pour chaque annonce.

Calculer une moyenne des prix n’est pas compliqué une fois dans excel (ou libroffice)

Je peux peut être donner l’url si ca interesse quelqu’un , sous linux , à la condition qu’il sache lancer 1 commande dans un terminal bash :slight_smile:

Vidéo : https://www.youtube.com/watch?v=rTY0XoI9_ZM (première version, sans jquery…)

A+

3 « J'aime »

Bonjour KoinKoin,

Je suis tombé sur ton profil GitHub en faisant des recherches, j’avais déjà vu ta vidéo auparavant !
Je dois télécharger donc le programme « KOINKOIN » et ensuite exécuter sous linux quelle commande pour parvenir à mes fins ?
Si tu peux m’expliquer les étapes pour correctement utiliser ton programme j’en serais ravi !

Un énorme merci d’avance !
Cordialement,

Oula oublie KOINKOIN sur github, c’est un projet mort né même pas embryonnaire. De plus c’était pour mes premiers pas sur github.

KOIKOIN_LBC est spécifiquement dédié pour leboncoin. Il est écrit en bash (pour terminal linux).

http://dreamproject.fr/public/

SVP telecharger les vidéos sur votre disque si vous souhaitez les visionner grand merci d’avance pour mon tout petit serveur…

NB : tout est dans le release, mais je suis dans le coin si t’es bloqué (toi ou quelqu’un d’autre).

A++

3 « J'aime »

Super Koikoin,

Un grand merci pour ce partage, je vais tester ça d’ici peu et je reviens vers toi si j’ai un souci !
Encore merci et bonne continuation :slight_smile:

Cordialement,

Je viens de remarquer un truc de fou en terme de browsing de pages, je ne sais pas si tu l’as trouvé aussi @koinkoin ?

Suite à une recherche, on a 35 résultats par page il me semble, j’ai trouvé une méthode pour récupérer les data des 35 offres d’un coup, sans browser les 35 pages une par une…

Il y a en a un qui vient de découvrir la route https://api.leboncoin.fr/finder/search :slight_smile:

2 « J'aime »

@ScrapingExpert , @ksahin, j’a pas tout compris ni cette histoire de ne pas crawler les 35 annonces et cette histoire d’url : url incomplete…

J’aimerai bien avoir un exemple qui fonctionne avec cet url, de plus c’est pour obtenir un json ?

? (qui est vraiment complet ?) ?

De rien, profitez de télécharger l’archive après je ferme (a cause des vidéos je ne peux pas laisser ouvert ; toute ma bande passante autorisée y passerai !)

KOINKOIN_LBC : il y a pas grand chose a faire. Tu decompresses l’archive, tu ouvres une console, tu te met au bon endroit et tu lance 1 commande.

La commande a lancer est ./KOINKOIN_LBC [paramURL] [profondeur)
L’url est très importante : il faut aller sur le boncoin manuellement, reperer le bon rayon, faire la bonne requete et copier coller l’url

Exemple 1 : (portable, rayon informatique, de 40 a 100 eur), profondeur 10 (10*35 annonces au maximum)
./KOINKOIN_LBC.sh ‹ https://www.leboncoin.fr/recherche/?text=portable&category=15&region=12&departement=75&price=40-100&page=1 › 10

Il faut bien respecter la syntaxe :

  • la commande doit commencer par ./ (point et slash)
  • l’url de leboncoin doit etre entouré de simples quotes (guillemets simples)
  • l’url de leboncoin doit se terminer par page=1 (quoique je doute maintenant :slight_smile: )
  • il faut terminer par un nombre qui correspond à la profondeur (35 annonces pour une profondeur de 1, 70 annonces pour une profondeur de 2 etc)

Bien sur une fois l’archive décompressée, il faut faire :
sudo chmod 700 KOINKOIN_LBC.sh

Un énorme merci pour ces conseils supplémentaires, tu peux remettre en privé j’ai déjà tout téléchargé !
Du coup si je comprend bien, je peux scrapper que 350 annonces en une fois, j’aurais juste aàchanger l’adresse pour faire les 350 annonces suivantes ?

Première extraction :
./KOINKOIN_LBC.sh ‘https://www.leboncoin.fr/recherche/?text=portable&category=15&region=12&departement=75&price=40-100&page=1’ 10

Seconde extraction :
./KOINKOIN_LBC.sh ‘https://www.leboncoin.fr/recherche/?text=portable&category=15&region=12&departement=75&price=40-100&page=10’ 10

NON !!!

Tu peux TOUT prendre en 1 fois : profondeur 1 = 35 annonces, profondeur 2 = 70 annonces etc.

Sit tu veux 700 annonces (700 annonces tu mets 700/35= profondeur 20)

J’ai mis une limite a profondeur 50 (50*35=1750 annonces d’un coup). Mais tu peux faire sauter le verrou

Si t’as envie de récuperer les 30 millions d’annonces, tu prepares une url genre toute la france, tous les rayons, tu mets une profondeur de 857143 et dans 3 ou 4 mois tu les auras toutes :slight_smile:

Exemple : ./KOINKOIN_LBC.sh ‘https://www.leboncoin.fr/annonces/offres/’ 857143
Exemple 2 : ./KOINKOIN_LBC.sh ‘https://www.leboncoin.fr/recherche/?text=portable&category=15&region=12&departement=75&price=40-100&page=1’ 10
Exemple 3 : ./KOINKOIN_LBC.sh ‘https://www.leboncoin.fr/recherche/?text=portable&category=15&region=12&departement=75&price=40-100&page=1’ 45

@koinkoin
Lorsque tu fait une recherche sur leboncoin, il y a un POST qui est fait sur cette url.
Tu obtiens un beau JSON en réponse, avec toute les infos pour chaque annonce.

Donc ton script n’a pas aller taper sur chaque URL, puisque tu as tout sur chaque page de resultats, dans le json.

Ouvre ton inspecteur Chrome pour voir la requête.
C’est un POST sur https://api.leboncoin.fr/finder/search avec ça en payload (et les headers a respecter je suppose)

{"filters":{"category":{},"enums":{"ad_type":["offer"]},"keywords":{"text":"RECHERCHE"},"location":{"region":"NUMERO_DE_REGION"},"ranges":{}},"limit":35,"limit_alu":3}

Ca devrait permettre a ton script d’être plus rapide !

2 « J'aime »

Et d’ailleurs si tu veux que ce soit plus rapide, fait du multithreading ou de l’asynchrone, c’est vraiment adapté a ce genre de tâches.

J’ai augmenté les performances de mon script. Il y a sur le lien une vidéo d’un autre projet qui s’appelle KOINKOIN_JOB.

KOINKOIN_JOB est un outil qui crawle beaucoup plus vite et j’ai paralélisé aussi les traitements sur les regex.
A terme je configurerai KOINKOIN_JOB pour obtenir une nouvelle version de KOINKOIN_LBC qui sera multiCatégories, multiUrls et multiTags (et monoPlugin : celui de leboncoin <== se référer à ma vidéo KOINKOIN_JOB https:dreamproject.fr/public/)

Et pour tout dire je suis en train de réecrire KOINKOIN_JOB en C++ (plusieurs mois de boulot), pour à terme offrir a mon crawler la possibilité de lui paramétrer d’autres comportements (comme celui de s’aretter pour extraire des infos qui sont disponibles et ne pas crawler pour rien des centaines d’urls ensuite, mais ce n’est qu’un exemple, etc))

1 « J'aime »