Scraping leboncoin, qu'est-ce qui marche en 2019 avoir leur solution anti-bot?

Hello,
Le sujet a déjà été évoqué, mais ça évolue assez vite.
Quelles solutions fonctionnent en oct 2019 pour (gentillement) scraper juste quelques pages de résultats leboncoin? Effectivement leur solution AI Data Dome a l’air de pas mal fonctionner :slight_smile:

J’ai testé ça en Python avec des headers copiés/collés de mon vrai navigateur, mais ça marche pas:

headers = """Host: www.leboncoin.fr
Connection: keep-alive
User-Agent: ...
Accept: ...
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,fr;q=0.8"""

headers = dict(line.split(': ', 1) for line in headers.split('\n'))
s = requests.Session()
res = s.get("https://www.leboncoin.fr/recherche/?text=mac&locations=", headers=headers)

As-tu testé le headless browser? :slight_smile:

1 J'aime

Je suis en train à l’heure où nous écrivons :slight_smile:

Hello @youyesyou pour moi avec zenno ca fonctionne parfaitement.

Merci du feedback! Tu peux détailler ton worfklow avec quelques bouts de code? (python welcome!) Ca utilise selenium / chromedriver?

@youyesyou j’utilise zennoposter ce n’est pas un bot créer en python comme scrapy mais plutôt un émulateur de browser qui te fait une simulation d’un client qui visite le site à scraper et c’est quasi indétectable.

Tu peux :

Changer les ip à chaque visite
changer de browser (user agent)
changer de tes entêtes exemple tu peux emuler un linux, win 10 etc
Changer de géolocalisation
Simulation frappe clavier
Simulation scroll page
Simulation souris

enfin en mixant le tout t’arrive à bypass quasi la totalité des anti bot.

3 J'aimes

salut kev . je débute sur zenno c’est très compliqué a gérer . j’ai un bot qui scrap les url et le 2 éme récupère la liste url et scrap les annonces les annonces mais mon souci est au niveau du numéro de téléphone qui est généré par clé sur dome data . aurai tu une solution stp ?

Salut @atef on peu en discuter en message privé si tu veux

1 J'aime

@youyesyou tu as essayé avec Selenium + ChromeDriver finalement? Ca fonctionne? J’ai regardé Zennoposter mais je n’ai pas l’impression qu’il y ai une API ouverte qui permette de le piloter depuis un programme maitre. L’interface UI a l’air bien foutue mais c’est toujours un peu limitant.

Go Node.js + Puppeteer, tu pourras piloter un full browser Chrome en headless, depuis un script master en Node :slight_smile:

2 J'aimes

C’est vrai qu’un des point faible de zennoposter c’est qu’il ne propose pas d’api par contre, avec la nouvelle version ( certes en beta mais totalement fonctionnel) et un bon réglage tu bypass datadom sans aucun problème :slight_smile:

Bonsoir, merci pour ta réponse.

Malheureusement rien qu’avec ce petit script :


const puppeteer = require("puppeteer");

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto("https://www.leboncoin.fr/annonces/offres/alsace/");
  await page.screenshot({ path: "example.png" });
  await browser.close();
})();

Leboncoin me bloque l’accès et me demande une confirmation (afin de s’assurer que je ne sois pas un robot). Je très débutant dans le domaine, pouvez-vous m’aider ?

Merci !

Hey, compliqué à ce stade de t’aider, il faudrait te donner tout le code permettant de supprimer l’empreinte numérique du navigateur (cette fameuse empreinte qui permet de le repérer).

N’oublions pas que les teams anti bots de boites comme LBC traînent par ici, et trouve des parades en s’inspirant des contre mesures qu’on pourrait partager en clair…

3 J'aimes

De toute façon les dernières générations de bots sont tellement calqués sur un humain qu’il vont finir pas ban des vrais Users

4 J'aimes

D’accord je vois, merci ! Je vais approfondir tout cela et essayer de m’en sortir.

Hello Kev1,

Je tente depuis plusieurs jours d’utiliser Zenno pour réaliser du scrap cependant j’ai plusieurs points de blocage :

  • Je n’arrive pas à mettre un proxy, j’ai fait un test bateau avec un proxy en dur et avec un go to monip.org mais ça ne m’applique rien.
  • Je n’arrive pas à compter le nombre de valeur dans une liste
  • Je n’arrive pas à checker les proxy avec ProxyChecker

Je te remercie par avance, je lance un projet (après 2 années à 4 à travailler dessus) et j’aurais énormément besoin d’aide, un grand merci d’avance :slight_smile:
Arnaud

Bonjour @arnaud44

Concernant les proxy, je ne les utilises pas je préfère utiliser un vpn donc je ne pourrai pas t’aider sur ce point.
Quand tu dit je n’arrive pas à compter le nombre de valeur dans une liste, tu veux récupérer les valeurs d’une ligne dans un fichier et le mettre dans une variable? passe en MP si tu veux

Perso le scrapping LBC demande uniquement un bon rotating ip et une tache récurrente rien de bien compliqué.

Je te déconseille d’utiliser des proxies publics dans ce cas là (et dans la plupart des autres cas aussi en fait).Les problèmes des proxies publics sont nombreux : lenteurs, bans, anonymat aléatoire, IP exotiques…

  • Pour activer des proxies prives ou semi prives ou autres pour les rotations: « list processing » avec ta liste de proxies ->« get line random » puis browser settings -> « set proxy » avec ton ip de proxy.Je te conseille de whitelister ton ip de vps par simplicité.

  • Pour compter le nombre de lignes : « list processing » ->« get lines count ».

  • Enfin pour proxy checker , je te conseille de t’en passer (cf conseil plus haut )

1 J'aime

Après il faut mettre un petit budget pour avoir un proxy / proxy rotating de qualité.
Le gratuit n’est jamais toujours bon et il faut savoir donner pour recevoir :slight_smile: