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
Freigeben: 2024-12-30 17:48:11
Original
716 Leute haben es durchsucht

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)
    Nach dem Login kopieren
  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'})
    Nach dem Login kopieren
  3. Navigator.webdriver-Eigenschaft ändern:

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

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

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

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

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!

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