Rumah >Java >javaTutorial >Bagaimana Saya Boleh Mencegah Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver`?

Bagaimana Saya Boleh Mencegah Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-23 19:22:17260semak imbas

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

Menghalang Pengesanan Selenium: Mengubah suai navigator.webdriver Flag

Apabila cuba mengautomasikan tugas menggunakan Selenium dan Chrome, tapak web tertentu mungkin menyekat permintaan berdasarkan pengesanan Selenium pelayar yang dipacu. Satu kaedah pengesanan yang biasa melibatkan pendedahan pembolehubah DOM yang dipanggil navigator.webdriver, yang mengembalikan benar jika penyemak imbas dikawal oleh Selenium.

Untuk memintas pengesanan ini, pertimbangkan pendekatan berikut:

Tidak Termasuk Automasi Suis

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(options=options, executable_path=r"path/to/chromedriver.exe")

Mengubah suai navigator.webdriver

driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

Menukar Ejen Pengguna

driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})

Melumpuhkan Ciri Blink

options.add_argument("--disable-blink-features=AutomationControlled")

Contoh Kod Komprehensif

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"path/to/chromedriver.exe")
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})
driver.get("https://www.example.com")

Bersejarah Pertimbangan

The Antara muka NavigatorAutomationInformation termasuk bendera navigator.webdriver, yang kembali benar apabila penyemak imbas dikawal oleh WebDriver. Walau bagaimanapun, mengubah parameter ini boleh menyebabkan isu navigasi atau pengesanan jika digunakan secara tidak wajar.

Kemas kini

Versi terkini Selenium menawarkan ciri tambahan untuk kawalan WebDriver, termasuk perintah execute_cdp_cmd() untuk melaksanakan arahan DevTools. Menggunakan arahan ini menyediakan cara yang mudah untuk mengubah suai bendera navigator.webdriver dan menghalang pengesanan Selenium.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mencegah Pengesanan Selenium dengan Mengubah Suai Bendera `navigator.webdriver`?. 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