1
votes

Le site Web utilisant DataDome obtient le captcha bloqué lors du scraping avec Selenium et Python

J'essaie en fait de récupérer des données de voiture sur différents sites Web, j'ai utilisé du sélénium avec Chromebrowser, mais certains sites Web bloquent en fait le sélénium avec la validation captcha (exemple: https://www.leboncoin.fr/ ), et ce en seulement 1 ou 2 requêtes. J'ai essayé de changer $ _cdc dans le navigateur chrome mais cela n'a pas résolu le problème, et j'ai utilisé ces options pour le navigateur chrome

user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
options = webdriver.ChromeOptions()
options.add_argument(f'user-agent={user_agent}')
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--profile-directory=Default')
options.add_argument("--incognito")
options.add_argument("--disable-plugins-discovery")
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors", "safebrowsing-disable-download-protection", "safebrowsing-disable-auto-update", "disable-client-side-phishing-detection"])
options.add_argument('--disable-extensions')
browser = webdriver.Chrome(chrome_options=options)

browser.delete_all_cookies()

browser.set_window_size(800,800)

browser.set_window_position(0,0)

Le site Web que j'essaie de gratter utilise DataDome pour sécurité des robots, un indice?


0 commentaires

3 Réponses :


0
votes

Cela peut se produire pour une myriade de raisons. Essayez de parcourir la réponse ici qui cède quelque peu vous pouvez éviter ce problème.

Une solution simple qui a parfois fonctionné pour moi consiste à utiliser les appels Waits / Sleep dans le sélénium, voir ici à partir de la documentation sur Waits. Ou les appels de sommeil peuvent être faits comme ça

Import time
time.sleep(2)


1 commentaires

J'utilise déjà sleeps à chaque demande, il ne s'agit pas de ça car je suis bloqué en si peu de demandes, je pourrais même aller sur ce site Web sur chromedriver qu'en moins de 3 demandes, je pourrais valider le captcha, leur javascript est capable de détecter je J'utilise un chrome émulé pour une raison quelconque



0
votes

Un peu plus de détails sur votre cas d'utilisation de la récupération de données de voiture à partir de différents sites Web ou de https: //www.leboncoin. fr / nous aurait aidé à construire une réponse plus canonique. Cependant, j'ai pu accéder à la Source de la page en utilisant Sélénium comme suit:

  • Bloc de code:

    <html class="gServer"><head><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""><link rel="preload" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&amp;display=swap" crossorigin="" as="style"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&amp;display=swap" crossorigin=""><style data-emotion-css=""></style><meta charset="utf-8"><link rel="manifest" href="/manifest.json"><link type="application/opensearchdescription+xml" rel="search" href="/opensearch.xml"><meta name="theme-color" content="#ff6e14"><meta property="og:locale" content="fr_FR"><meta property="og:site_name" content="leboncoin"><meta name="twitter:site" content="leboncoin"><meta http-equiv="P3P" content="CP=&quot;This is not a P3P policy&quot;"><meta name="viewport" content="initial-scale=1.0, width=device-width, maximum-scale=1.0, user-scalable=0"><script type="text/javascript" async="" src="https://www.googleadservices.com/pagead/conversion_async.js"></script><script type="text/javascript" async="" src="https://tp.realytics.io/sync/se/cnktbDNiMG5jb3xyeV83NTFGRUQwMy1CMDdGLTRBQTgtOTAxRi1DNUREMDVGRjkxQTJ8?ct=1&amp;rt=1&amp;u=https%3A%2F%2Fwww.leboncoin.fr%2F&amp;r=&amp;ts=1591306049397"></script><script type="text/javascript" async="" src="https://www.googleadservices.com/pagead/conversion_async.js"></script><script type="text/javascript" async="" src="https://www.googleadservices.com/pagead/conversion_async.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-766292687&amp;l=dataLayer&amp;cx=c"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-667462656&amp;l=dataLayer&amp;cx=c"></script><script type="text/javascript" async="" src="https://cdn-eu.realytics.net/realytics-1.2.min.js"></script><script type="text/javascript" async="" src="https://i.realytics.io/tc.js?cb=1591306047755"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=DC-4167650&amp;l=dataLayer&amp;cx=c"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-744431185&amp;l=dataLayer&amp;cx=c"></script><script type="text/javascript" async="" charset="utf-8" src="//www.googleadservices.com/pagead/conversion_async.js" id="utag_82"></script><script type="text/javascript" async="" charset="utf-8" src="//sdk.mpianalytics.com/pulse.min.js" id="utag_47"></script><script async="true" type="text/javascript" src="https://sslwidget.criteo.com/event?a=50103&amp;v=5.5.0&amp;p0=e%3Dexd%26site_type%3Dd&amp;p1=e%3Dvh&amp;p2=e%3Ddis&amp;adce=1&amp;tld=leboncoin.fr&amp;dtycbr=6569" data-owner="criteo-tag"></script><script type="text/javascript" src="//try.abtasty.com/09643a1c5bc909059579da8aac99e8f1.js"></script><script>window.dataLayer = window.dataLayer || [];
    .
    .
    .
    <iframe height="1" width="1" style="display:none" src="//4167650.fls.doubleclick.net/activityi;src=4167650;type=slbc01;cat=all-site;u1=homepage;ord=9979622847645.51?" id="utag_179_iframe"></iframe></body></html>
    
  • Sortie de la console:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
    driver.get('https://www.leboncoin.fr/')
    print(driver.page_source)
    

Cependant, il est assez évident d'après l ' arborescence DOM que le site Web est protégé contre les Bad Bots via DataDome comme dans :

 DataDome


DataDome

Les principales fonctionnalités sont les suivantes:

  • DataDome est la seule solution de protection contre les bots fournie en tant que service.
  • DataDome ne nécessite aucune modification d'architecture ni réacheminement DNS.
  • Le moteur de détection de bots de DataDome compare chaque demande au site Web avec une énorme base de données de modèles en mémoire et utilise un mélange d'IA et d'apprentissage automatique pour décider en moins de 2 millisecondes si l'accès à vos pages doit être accordé ou non.
  • / li>
  • DataDome détecte et identifie 100% des menaces automatisées OWASP.
  • La fonction de règles personnalisées de DataDome peut même vous permettre de bloquer le trafic humain en provenance de pays dans lesquels vous ne vendez pas, ou d'autoriser les robots partenaires à accéder à votre site uniquement dans des circonstances spécifiques.

Outro

La documentation sur DataDoe se trouve à l'adresse:


0 commentaires

1
votes

Quel est le problème avec le captcha? Vous pouvez le résoudre avec un service bon marché comme Anti Captcha ou autres. Voici un exemple avec NodeJS: https://github.com/ MoterHaker / bypass-captcha-examples / blob / main / geo.captcha-delivery.com.js


0 commentaires