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

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

Mary-Kate Olsen
リリース: 2024-12-24 06:35:25
オリジナル
648 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート