> Java > java지도 시간 > 웹사이트에서 Selenium Webdriver가 감지되는 것을 어떻게 방지할 수 있습니까?

웹사이트에서 Selenium Webdriver가 감지되는 것을 어떻게 방지할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-30 17:48:11
원래의
716명이 탐색했습니다.

How Can I Prevent Selenium Webdriver from Being Detected by Websites?

Selenium Webdriver: navigator.webdriver 플래그를 수정하여 감지 방지

소개

인기 있는 웹 자동화 프레임워크인 Selenium은 웹사이트 구현 시 문제에 직면합니다. Selenium 기반 브라우저에 플래그를 지정하는 탐지 메커니즘. 이 문서의 목적은 navigator.webdriver 플래그를 수정하여 Selenium의 감지를 방지하는 효과적인 방법을 제공하여 이러한 감지 문제를 해결하는 것입니다.

접근 방법

  1. Chrome 추가 인수:

    • --disable-blink-features=AutomationControlled는 자동화 감지 기능을 비활성화합니다.
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(options=options)
    로그인 후 복사
  2. CDP 실행 명령:

    • execute_cdp_cmd를 사용하면 브라우저의 Chrome DevTools 프로토콜(CDP)을 직접 조작할 수 있습니다.
    • 실제 사용자를 더욱 모방하도록 사용자 에이전트를 수정하세요. 동작.
    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'})
    로그인 후 복사
  3. navigator.webdriver 속성 수정:

    • navigator.webdriver의 속성 값을 다음으로 변경합니다. 정의되지 않음.
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    로그인 후 복사
  4. 자동화 스위치 제외:

    • 자동화 관련 수집을 방지하려면 제외 스위치를 추가하세요. 스위치를 사용하세요.
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    로그인 후 복사
  5. 자동화 확장 비활성화:

    • useAutomationExtension 옵션을 꺼서 추가로 줄이세요. 탐지.
    options.add_experimental_option('useAutomationExtension', False)
    로그인 후 복사

샘플 코드

위 방법을 단일 코드 블록으로 결합:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options)
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'})
driver.get('https://www.website.com/')
로그인 후 복사

역사적 맥락

navigator.webdriver 플래그는 W3C에서 다음과 같이 정의됩니다. 사용자 에이전트가 원격 제어하에 있음을 나타내는 방법입니다.

주의

이 매개변수를 조정하면 브라우저 탐색을 방해하고 WebDriver 인스턴스를 감지할 수 있게 만들 수 있습니다.

업데이트

  • Selenium Python 클라이언트는 이제 Execute_cdp_cmd를 지원합니다.
  • 탐지 방지를 더욱 향상시키기 위해 추가 매개 변수가 추가되었습니다.

결론

이러한 방법을 따르면 navigator.webdriver 플래그를 효과적으로 수정할 수 있으며 웹사이트가 Selenium 기반 브라우저를 감지하지 못하도록 방지합니다. 그러나 이러한 변경 사항은 감지되지 않도록 주의해서 처리하는 것이 중요합니다.

위 내용은 웹사이트에서 Selenium Webdriver가 감지되는 것을 어떻게 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿