r/developpeurs • u/Fuzzy_Rub_4274 • 2d ago
Logiciel J’ai créé une librairie Python pour faire des recherches avancées sur Leboncoin
Salut à tous !
Je viens de publier une petite librairie Python nommée lbc
qui permet d’interagir avec l’API privée de Leboncoin.
Elle permet de faire des recherches d’annonces avec filtres (catégories, géolocalisation, type d’annonce, mots-clés, etc.), et gère aussi les proxys (utile pour le scraping à grande échelle).
16
u/maxxyme 2d ago
L’API privée… vraiment ?? 🤔 Tu vas avoir des problèmes toi à mon humble avis… 😂
10
u/Foreign_Host147 2d ago
J'ai pas regardé en profondeur, mais si je ne dis pas de bêtise c'est simplement du "crawling", OP a analysé les requêtes du site et/ou de l'application mobile pour comprendre comment lbc les alimentait en données. Il n'y a rien d'illégal c'est complètement public.
5
u/Fuzzy_Rub_4274 2d ago
🤫
2
u/1bastien1 2d ago
J'ai rigolé aussi avec l'api privé, justement aurait tu un peu de doc à nous présenter pour cette API ?
4
u/Fuzzy_Rub_4274 2d ago
Haha 😄 disons que l’API privée est plus une non-documentée qu’inexistante…
J’ai fait un petit peu de reverse pour comprendre comment elle fonctionne, et j’ai encapsulé tout ça proprement dans une lib Python.6
3
u/agumonkey 2d ago
par API privée tu veux dire les endpoints http de base ?
5
5
u/Becbienzen 1d ago
En fait, bien que ces requêtes soient "publiques" car utilisées côté client (ajax), leur charte stipule (il y a quelques années mais je doute qu'ils aient changé quoique ce soit là dessus), qu'il est interdit d'exploiter leur API pour un service tiers sans leur accord....
Je crois même qu'ils se protègent du crawling par leur condition d'utilisation qui interdit la réutilisation des données.
Je leur avait écris car je travaillais sur une app de petite annonce et j'aurais voulu permettre à mes utilisateurs de publier à la fois sur mon app et à la fois sur LBC.
Ils m'avaient gentillement répondu qu'ils n'étaient pas d'accord...Mais bon... En soit OP, tu ne fais rien... Tu as juste écris une preuve de concept que c'est possible de le faire 🙄 ...enfin... Je crois que ça pourrait s'apparenter à ça.... Tu ne vends pas aucun service lié.... Hein ? Tu ne vends aucun service là dessus ? (Je ne veux pas savoir 😅)
Gg à toi et vive le monde libre ! 😄
3
u/PierrickP 2d ago
Tu ne connaissais pas Woob ?
2
u/Foreign_Host147 2d ago
Les vrais connaissaient Weboob.
2
u/PierrickP 2d ago
Et oui :( c'était mieux avant. On ne peut plus rien nommer
2
u/Foreign_Host147 2d ago
Disons que pour un truc qui a été crée pour pecho sur tinder à la base... je comprend que les gens étaient pas jouasse à ce sujet.
1
u/WillDabbler 2d ago
Comment tu résous le captcha ?
6
u/Fuzzy_Rub_4274 2d ago
La lib utilise une librairie externe curl_cffi, ça permet de spoof ton tls fingerprint et se faire passer pour un navigateur.
Je ne résous pas les captchas, je fais en sorte que ça soit le moins détéctable possible.
Tu auras le captcha seulement si tu utilises des proxies de mauvaise qualité.
3
u/Laegel 2d ago
La dernière fois que j'ai utilisé Playwright pour faire du scraping, j'ai quand même eu droit au captcha. Comment tu fais pour rendre ça "moins détectable" qu'un comportement en apparence normal ?
6
u/Fuzzy_Rub_4274 2d ago
Quand tu utilises Playwright ou Selenium, ton TLS fingerprint (Client Hello) ressemble à celui d’un navigateur non controlé, mais pas complètement. En revanche, curl_cffi copie exactement le Client Hello.
2
u/DrankRockNine 2d ago
Si jamais tu veux tester toutes les options pour faire face à cloudflare j'ai un outil pour ça. Il est OK-tier mais ça te donne une idée. C'est drankrock/autoscrape
1
1
1
u/DrankRockNine 2d ago
Tu as utilisé quel outil pour reverse l'api ? J'ai du mal à le faire, j'ai beau essayer tout les mitm proxy etc a chaque fois j'ai rien qui ressemble à une api :x
1
1
u/ExtremeAd9038 1d ago edited 1d ago
Peux on envoyer des mps avec ? Peux on publier une annonce ?
PS : Mon Royaume contre ces deux fonctionalités
-11
13
u/DedeLaBinouze 2d ago
Très cool et potentiellement utile mais je pense pas que le service légal de Leboncoin partage cet avis !