Heim >Java >javaLernprogramm >Wie kann ich die Selenium-Erkennung verhindern, indem ich das Flag „navigator.webdriver' ändere?
Beim Versuch, Aufgaben mit Selenium und Chrome zu automatisieren, blockieren bestimmte Websites möglicherweise Anfragen basierend auf der Erkennung eines Selenium -gesteuerter Browser. Eine gängige Erkennungsmethode besteht darin, eine DOM-Variable namens navigator.webdriver verfügbar zu machen, die „true“ zurückgibt, wenn der Browser von Selenium gesteuert wird.
Um diese Erkennung zu umgehen, ziehen Sie die folgenden Ansätze in Betracht:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) driver = webdriver.Chrome(options=options, executable_path=r"path/to/chromedriver.exe")
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})
options.add_argument("--disable-blink-features=AutomationControlled")
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"path/to/chromedriver.exe") driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"}) driver.get("https://www.example.com")
Die NavigatorAutomationInformation-Schnittstelle enthält den Navigator .webdriver-Flag, das „true“ zurückgibt, wenn der Browser von WebDriver gesteuert wird. Das Ändern dieser Parameter kann jedoch bei unsachgemäßer Verwendung zu Navigationsproblemen oder Erkennungsproblemen führen.
Neueste Versionen von Selenium bieten zusätzliche Funktionen für die WebDriver-Steuerung, einschließlich des Befehls „execute_cdp_cmd()“ zum Ausführen von DevTools-Befehlen. Die Verwendung dieses Befehls bietet eine bequeme Möglichkeit, das Flag navigator.webdriver zu ändern und die Selenium-Erkennung zu verhindern.
Das obige ist der detaillierte Inhalt vonWie kann ich die Selenium-Erkennung verhindern, indem ich das Flag „navigator.webdriver' ändere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!