Pengesanan selenium menimbulkan cabaran besar apabila mengautomasikan fungsi tapak web biasa melalui Selenium dan Chrome. Sesetengah tapak web secara aktif menyemak pelayar dipacu Selenium, menghalang permintaan tertentu. Selalunya, mereka bergantung pada pembolehubah DOM yang terdedah, seperti navigator.webdriver, untuk mengesan kejadian sedemikian.
Untuk menggagalkan mekanisme pengesanan ini, pertimbangkan untuk menerima pakai langkah pencegahan berikut:
Ubah suai skrip Selenium anda untuk menyuntik argumen khusus ke dalam contoh Chrome. Ini termasuk:
Melumpuhkan bendera "AutomationControlled":
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--disable-blink-features=AutomationControlled') driver = webdriver.Chrome(options=options, executable_path=path_to_driver)
Menetapkan ejen pengguna tersuai:
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Your_Custom_User_Agent'})
Tetapkan navigator.webdriver kepada undefined:
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
Kecualikan suis automasi:
options.add_experimental_option("excludeSwitches", ["enable-automation"])
Lumpuhkan automasi sambungan:
options.add_experimental_option('useAutomationExtension', False)
Menggabungkan langkah-langkah ini, berikut ialah coretan 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=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')
Berhati-hati kerana pengubahsuaian ini boleh mengganggu navigasi dan berpotensi membawa kepada pengesanan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Pengesanan Selenium dengan Mengubah Suai Bendera Navigator.webdriver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!