Maison >Java >javaDidacticiel >Comment puis-je empêcher Selenium Webdriver d'être détecté par les sites Web ?
Selenium, un framework d'automatisation Web populaire, est confronté à des défis lorsque les sites Web sont mis en œuvre mécanismes de détection qui signalent les navigateurs pilotés par Selenium. Cet article vise à résoudre ces problèmes de détection en fournissant des méthodes efficaces pour modifier l'indicateur navigator.webdriver, empêchant ainsi la détection de Selenium.
Ajouter des arguments Chrome :
options = webdriver.ChromeOptions() options.add_argument('--disable-blink-features=AutomationControlled') driver = webdriver.Chrome(options=options)
Exécuter la commande CDP :
driver.execute_cdp_cmd('Network.setUserAgentOverride', {'userAgent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'})
Modifier la propriété navigator.webdriver :
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
Exclure les commutateurs d'automatisation :
options.add_experimental_option("excludeSwitches", ["enable-automation"])
Désactiver l'extension d'automatisation :
options.add_experimental_option('useAutomationExtension', False)
Combinaison des méthodes ci-dessus en un seul bloc de code :
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--disable-blink-features=AutomationControlled') options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) driver = webdriver.Chrome(options=options) driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") driver.execute_cdp_cmd('Network.setUserAgentOverride', {'userAgent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'}) driver.get('https://www.website.com/')
Le drapeau navigator.webdriver est défini par le W3C comme un moyen d'indiquer que un agent utilisateur est sous contrôle à distance.
La modification de ces paramètres peut interférer avec la navigation dans le navigateur et rendre l'instance WebDriver détectable.
En suivant ces méthodes, vous pouvez modifier efficacement l'indicateur navigator.webdriver et empêcher les sites Web de détecter votre navigateur piloté par Selenium. Cependant, il est important de gérer ces changements avec prudence pour éviter d'être détectés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!