Selenium 및 Chrome을 사용하여 작업을 자동화하려고 할 때 특정 웹사이트에서 Selenium 감지에 따라 요청을 차단할 수 있습니다. - 기반 브라우저. 일반적인 감지 방법 중 하나는 브라우저가 Selenium으로 제어되는 경우 true를 반환하는 navigator.webdriver라는 DOM 변수를 노출하는 것입니다.
이 감지를 우회하려면 다음 접근 방식을 고려하세요.
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")
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})
options.add_argument("--disable-blink-features=AutomationControlled")
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")
NavigatorAutomationInformation 인터페이스에는 브라우저가 WebDriver에 의해 제어될 때 true를 반환하는 navigator.webdriver 플래그가 포함되어 있습니다. 그러나 이러한 매개변수를 변경하면 부적절하게 사용할 경우 탐색 문제나 감지가 발생할 수 있습니다.
Selenium의 최신 버전은 DevTools 명령 실행을 위한 run_cdp_cmd() 명령을 포함하여 WebDriver 제어를 위한 추가 기능을 제공합니다. 이 명령을 활용하면 navigator.webdriver 플래그를 수정하고 Selenium 감지를 방지하는 편리한 방법이 제공됩니다.
위 내용은 `navigator.webdriver` 플래그를 수정하여 셀레늄 감지를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!