ホームページ >Java >&#&チュートリアル >Navigator.webdriver フラグを変更して Selenium の検出を防ぐにはどうすればよいですか?

Navigator.webdriver フラグを変更して Selenium の検出を防ぐにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 06:35:25647ブラウズ

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

Selenium の検出を防ぐために Navigator.webdriver フラグを変更する

Selenium と Chrome を使用して日常的な Web サイトの機能を自動化する場合、Selenium の検出は大きな課題となります。一部の Web サイトでは、Selenium 駆動のブラウザーを積極的にチェックし、特定のリクエストを阻止します。多くの場合、このようなインスタンスを検出するには、navigator.webdriver などの公開された DOM 変数に依存します。

予防アプローチ

この検出メカニズムを阻止するには、次の予防手段の採用を検討してください。

コマンドライン フラグの追加

Selenium スクリプトを変更して特定の引数を挿入しますChrome インスタンス。これには以下が含まれます:

  • 「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)
  • カスタム ユーザー エージェントの設定:

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

スクリプト内変更

  • navigator.webdriver を未定義に設定します:

    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
  • オートメーション スイッチを除外します:

    options.add_experimental_option("excludeSwitches", ["enable-automation"])
  • 自動化を無効にする拡張子:

    options.add_experimental_option('useAutomationExtension', False)

サンプル コード

これらの対策を組み合わせた、包括的なコード スニペットを次に示します。

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')

注意事項

これらの変更はナビゲーションを妨げ、潜在的に危険につながる可能性があるため注意してください。検出。

以上がNavigator.webdriver フラグを変更して Selenium の検出を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。