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
Lepaskan: 2024-12-23 19:22:17
asal
273 orang telah melayarinya

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")
Salin selepas log masuk

Mengubah suai navigator.webdriver

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

Menukar Ejen Pengguna

driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})
Salin selepas log masuk

Melumpuhkan Ciri Blink

options.add_argument("--disable-blink-features=AutomationControlled")
Salin selepas log masuk

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")
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan