Modification de l'indicateur navigator.webdriver pour empêcher la détection du sélénium dans Chrome
L'automatisation pilotée par WebDriver est souvent confrontée à la détection, les sites Web employant des mesures pour identifier les navigateurs. Pour éviter cette détection, Selenium propose une méthode pour modifier le drapeau navigator.webdriver dans Chrome.
1. execute_cdp_cmd() Update
Avec l'introduction de execute_cdp_cmd(), vous pouvez exécuter des commandes Google Chrome DevTools à l'aide de Selenium. Cela vous permet de modifier facilement le drapeau navigator.webdriver.
2. Prévenir la détection du sélénium
Pour empêcher la détection du sélénium, envisagez les approches suivantes :
3. Exemple de code
En combinant ces méthodes, un extrait de code Selenium efficace serait :
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.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'}) print(driver.execute_script("return navigator.userAgent;")) driver.get('https://www.httpbin.org/headers')
4. Contexte et mise en garde
Conformément au projet de l'éditeur du W3C, l'indicateur navigator.webdriver indique le contrôle à distance de l'agent utilisateur. Il est essentiel de faire preuve de prudence, car la modification de ces paramètres peut bloquer la navigation et mettre en évidence l'instance WebDriver.
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!