Heim >Java >javaLernprogramm >Wie kann ich verhindern, dass Selenium Webdriver von Websites erkannt wird?

Wie kann ich verhindern, dass Selenium Webdriver von Websites erkannt wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-30 17:48:11722Durchsuche

How Can I Prevent Selenium Webdriver from Being Detected by Websites?

Selenium Webdriver: Verhindern der Erkennung durch Ändern des navigator.webdriver-Flags

Einführung

Selenium, ein beliebtes Web-Automatisierungs-Framework, steht bei der Implementierung von Websites vor Herausforderungen Erkennungsmechanismen, die Selenium-gesteuerte Browser kennzeichnen. Dieser Artikel zielt darauf ab, solche Erkennungsprobleme zu beheben, indem er effektive Methoden zum Ändern des navigator.webdriver-Flags bereitstellt und so die Erkennung von Selenium verhindert.

Ansatz

  1. Chrome-Argumente hinzufügen :

    • --disable-blink-features=AutomationControlled deaktiviert die Automatisierungserkennungsfunktion.
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(options=options)
  2. CDP-Befehl ausführen:

    • execute_cdp_cmd ermöglicht die direkte Manipulation des Chrome des Browsers DevTools-Protokoll (CDP).
    • Ändern Sie den Benutzeragenten weiter reales Benutzerverhalten nachahmen.
    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'})
  3. Navigator.webdriver-Eigenschaft ändern:

    • Eigenschaftswert von Navigator ändern .webdriver zu undefiniert.
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
  4. Automatisierungsschalter ausschließen:

    • Ausschlussschalter hinzufügen, um die Erfassung automatisierungsbezogener zu verhindern Schalter.
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
  5. Automatisierungserweiterung deaktivieren:

    • Deaktivieren Sie die Option „useAutomationExtension“, um die Erkennung weiter zu reduzieren.
    options.add_experimental_option('useAutomationExtension', False)

Probe Code

Kombination der oben genannten Methoden in einem einzigen Codeblock:

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/')

Historischer Kontext

Das Flag navigator.webdriver wird vom W3C definiert, um dies anzuzeigen Ein Benutzeragent wird ferngesteuert.

Vorsicht

Das Optimieren dieser Parameter kann zu Störungen führen mit der Browsernavigation und machen die WebDriver-Instanz erkennbar.

Updates

  • Selenium Python-Clients unterstützen jetzt die Methodeexecute_cdp_cmd.
  • Zusätzliche Parameter wurden hinzugefügt, um die Erkennung weiter zu verbessern Prävention.

Fazit

Durch die Befolgung dieser Methoden, Sie können das Flag navigator.webdriver effektiv ändern und verhindern, dass Websites Ihren Selenium-gesteuerten Browser erkennen. Es ist jedoch wichtig, mit diesen Änderungen vorsichtig umzugehen, um einer Entdeckung zu entgehen.

Das obige ist der detaillierte Inhalt vonWie kann ich verhindern, dass Selenium Webdriver von Websites erkannt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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