Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menghalang Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver` dalam Chrome?

Bagaimanakah Saya Boleh Menghalang Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver` dalam Chrome?

Patricia Arquette
Patricia Arquetteasal
2024-12-25 04:41:11172semak imbas

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

Mengubah suai navigator.webdriver Flag untuk Mencegah Pengesanan Selenium dalam Chrome

Automasi dipacu WebDriver sering menghadapi pengesanan, dengan tapak web menggunakan langkah untuk mengenal pasti terkawal pelayar. Untuk mengelakkan pengesanan ini, Selenium menawarkan kaedah untuk mengubah suai bendera navigator.webdriver dalam Chrome.

1. execute_cdp_cmd() Kemas Kini

Dengan pengenalan execute_cdp_cmd(), anda boleh melaksanakan arahan Google Chrome DevTools menggunakan Selenium. Ini memberi kuasa kepada anda untuk mengubah bendera navigator.webdriver dengan mudah.

2. Mencegah Pengesanan Selenium

Untuk mengelakkan pengesanan Selenium, pertimbangkan pendekatan berikut:

  • Tambahkan hujah '--disable-blink-features=AutomationControlled'
  • Putar ejen pengguna menggunakan execute_cdp_cmd()
  • Tetapkan sifat navigator.webdriver kepada undefined
  • Kecualikan koleksi suis pengautomatan daya
  • Matikan useAutomationExtension
3. Kod Contoh

Menggabungkan kaedah ini, coretan kod Selenium yang berkesan ialah:

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')
4. Latar Belakang dan Awas

Mengikut Draf Editor W3C, bendera navigator.webdriver menunjukkan kawalan jauh ejen pengguna. Adalah penting untuk berhati-hati, kerana mengubah suai parameter ini boleh menyekat navigasi dan menyerlahkan contoh WebDriver.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver` dalam Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn