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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 04:41:11174ブラウズ

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

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

WebDriver 主導の自動化は、Web サイトで制御されているものを識別する手段を採用しているため、検出されることがよくあります。ブラウザ。この検出を防ぐために、Selenium は Chrome の navigator.webdriver フラグを変更する方法を提供します。

1。 execute_cdp_cmd() 更新

execute_cdp_cmd() の導入により、Selenium を使用して Google Chrome DevTools コマンドを実行できるようになります。これにより、navigator.webdriver フラグを簡単に変更できるようになります。

2. Selenium の検出の防止

Selenium の検出を防止するには、次のアプローチを検討してください。

  • 引数 '--disable-blink-features=AutomationControlled' を追加します
  • 次を使用してユーザー エージェントをローテーションしますexecute_cdp_cmd()
  • navigator.webdriver プロパティを未定義に設定します
  • 有効化オートメーション スイッチのコレクションを除外します
  • useAutomationExtension をオフにします

3.サンプル コード

これらのメソッドを組み合わせると、効果的な Selenium コード スニペットは次のようになります。

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'C:\WebDrivers\chromedriver.exe')
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'})
print(driver.execute_script("return navigator.userAgent;"))
driver.get('https://www.httpbin.org/headers')

4.背景と注意

W3C 編集者の草案によれば、navigator.webdriver フラグはユーザー エージェントのリモート制御を示します。これらのパラメータを変更すると、ナビゲーションがブロックされ、WebDriver インスタンスが強調表示される可能性があるため、注意が必要です。

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

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