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?
3 Réponses :
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)
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
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&display=swap" crossorigin="" as="style"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&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="This is not a P3P policy""><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&rt=1&u=https%3A%2F%2Fwww.leboncoin.fr%2F&r=&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&l=dataLayer&cx=c"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-667462656&l=dataLayer&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&l=dataLayer&cx=c"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=AW-744431185&l=dataLayer&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&v=5.5.0&p0=e%3Dexd%26site_type%3Dd&p1=e%3Dvh&p2=e%3Ddis&adce=1&tld=leboncoin.fr&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 :
Les principales fonctionnalités sont les suivantes:
La documentation sur DataDoe se trouve à l'adresse:
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