Heim > Java > javaLernprogramm > Wie kann ich die Selenium-Erkennung verhindern, indem ich das Flag „navigator.webdriver' in Chrome ändere?

Wie kann ich die Selenium-Erkennung verhindern, indem ich das Flag „navigator.webdriver' in Chrome ändere?

Patricia Arquette
Freigeben: 2024-12-25 04:41:11
Original
166 Leute haben es durchsucht

How Can I Prevent Selenium Detection by Modifying the `navigator.webdriver` Flag in Chrome?

Ä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:

  • Fügen Sie das Argument „--disable-blink-features=AutomationControlled“ hinzu
  • Drehen Sie den Benutzeragenten mit „execute_cdp_cmd()“
  • Legen Sie die Eigenschaft „navigator.webdriver“ fest auf undefiniert
  • Sammlung von Enable-Automation-Schaltern ausschließen
  • useAutomationExtension deaktivieren

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')
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage