Heim > Java > javaLernprogramm > Wie kann ich die Selenerkennung verhindern, indem ich das Navigator.webdriver-Flag ändere?

Wie kann ich die Selenerkennung verhindern, indem ich das Navigator.webdriver-Flag ändere?

Mary-Kate Olsen
Freigeben: 2024-12-24 06:35:25
Original
647 Leute haben es durchsucht

How Can I Prevent Selenium Detection by Modifying the Navigator.webdriver Flag?

Ändern des Navigator.webdriver-Flags, um die Selenium-Erkennung zu verhindern

Die Selenium-Erkennung stellt eine erhebliche Herausforderung bei der Automatisierung alltäglicher Website-Funktionen durch Selenium und Chrome dar. Einige Websites suchen aktiv nach Selenium-gesteuerten Browsern und verhindern so bestimmte Anfragen. Oft stützen sie sich auf exponierte DOM-Variablen wie navigator.webdriver, um solche Vorfälle zu erkennen.

Präventionsansatz

Um diesen Erkennungsmechanismus zu vereiteln, sollten Sie die folgenden vorbeugenden Maßnahmen in Betracht ziehen:

Befehlszeilen-Flags hinzufügen

Ändern Sie Ihr Selenium-Skript, um die spezifischen Argumente in die Chrome-Instanz einzufügen. Dazu gehört:

  • Deaktivieren des „AutomationControlled“-Flags:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(options=options, executable_path=path_to_driver)
    Nach dem Login kopieren
  • Einstellen eines benutzerdefinierten Benutzeragenten:

    driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Your_Custom_User_Agent'})
    Nach dem Login kopieren

Im Drehbuch Änderungen

  • navigator.webdriver auf undefiniert setzen:

    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    Nach dem Login kopieren
  • Automatisierungsschalter ausschließen:

    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    Nach dem Login kopieren
  • Automatisierung deaktivieren Erweiterung:

    options.add_experimental_option('useAutomationExtension', False)
    Nach dem Login kopieren

Beispielcode

In Kombination dieser Maßnahmen finden Sie hier einen umfassenden 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=path_to_driver)
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Your_Custom_User_Agent'})
print(driver.execute_script("return navigator.userAgent;"))
driver.get('https://www.httpbin.org/headers')
Nach dem Login kopieren

Vorbehalte

Seien Sie vorsichtig, da diese Änderungen die Navigation beeinträchtigen und möglicherweise zur Erkennung führen können.

Das obige ist der detaillierte Inhalt vonWie kann ich die Selenerkennung verhindern, indem ich das Navigator.webdriver-Flag ä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