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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-23 19:22:17236ブラウズ

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

Selenium の検出の防止: navigator.webdriver フラグの変更

Selenium と Chrome を使用してタスクを自動化しようとすると、特定の Web サイトが Selenium の検出に基づいてリクエストをブロックする場合があります。 -ドリブンのブラウザ。一般的な検出方法の 1 つは、navigator.webdriver という DOM 変数を公開することです。これは、ブラウザが Selenium によって制御されている場合に true を返します。

この検出を回避するには、次のアプローチを検討してください。

オートメーションの除外スイッチ

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

の変更navigator.webdriver

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 コマンドを実行するためのexecute_cdp_cmd() コマンドなど、WebDriver 制御用の追加機能が提供されています。このコマンドを使用すると、navigator.webdriver フラグを変更し、Selenium の検出を防ぐ便利な方法が提供されます。

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

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