Ändern des navigator.webdriver-Flags, um die Selenium-Erkennung in Chrome zu verhindern
WebDriver-gesteuerte Automatisierung wird häufig entdeckt, wobei Websites Maßnahmen zur Erkennung von Kontrollen einsetzen Browser. Um diese Erkennung zu verhindern, bietet Selenium eine Methode zum Ändern des navigator.webdriver-Flags in Chrome.
1. execute_cdp_cmd() Update
Mit der Einführung vonexecute_cdp_cmd() können Sie Google Chrome DevTools-Befehle mit Selenium ausführen. Dadurch können Sie das Flag „navigator.webdriver“ ganz einfach ändern.
2. Verhindern der Selenerkennung
Um die Selenerkennung zu verhindern, ziehen Sie die folgenden Ansätze in Betracht:
3. Beispielcode
In Kombination dieser Methoden wäre ein effektiver Selenium-Codeausschnitt:
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. Hintergrund und Vorsicht
Gemäß dem Entwurf des W3C-Editors weist das Flag „navigator.webdriver“ auf die Fernsteuerung des Benutzeragenten hin. Es ist unbedingt Vorsicht geboten, da das Ändern dieser Parameter die Navigation blockieren und die WebDriver-Instanz hervorheben kann.
Das obige ist der detaillierte Inhalt vonWie kann ich die Selenium-Erkennung verhindern, indem ich das Flag „navigator.webdriver' in Chrome ändere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!