ホームページ >Java >&#&チュートリアル >Navigator.webdriver フラグを変更して Selenium の検出を防ぐにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。