首頁 > Java > java教程 > 如何防止 Selenium Webdriver 被網站偵測到?

如何防止 Selenium Webdriver 被網站偵測到?

Patricia Arquette
發布: 2024-12-30 17:48:11
原創
716 人瀏覽過

How Can I Prevent Selenium Webdriver from Being Detected by Websites?

Selenium Webdriver:透過修改navigator.webdriver 標誌來防止偵測

簡介

Selenium 是一種流行的Web 自動化框架,在網站上實施時面臨挑戰標記Selenium 驅動的瀏覽器的檢測機制。本文旨在透過提供有效的方法來修改 navigator.webdriver 標誌,從而阻止 Selenium 的檢測來解決此類檢測問題。

方法

  1. 新增Chrome參數:

    • --disable-blink-features=Automation檢測功能。
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-blink-features=AutomationControlled')
    driver = webdriver.Chrome(options=options)
    登入後複製
  2. 執行CDP指令:

    • execute_hrp_cmd 允許直接操作瀏覽器的通訊協定(CoolCool) 。
    • 修改使用者代理程式進一步模仿真實使用者
    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'})
    登入後複製
  3. 修改navigator.webdriver 屬性:

      修改navigator.webdriver 屬性:
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    登入後複製
    將navigator.webdriver 的屬性值改為未定義。
    • 排除自動化開關:
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    登入後複製
    加入排除開關以防止收集與自動化相關的開關
    • 停用自動化擴充:
    options.add_experimental_option('useAutomationExtension', False)
    登入後複製
    關閉useAutomationExtension 選項進一步減少

範例程式碼
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options)
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'})
driver.get('https://www.website.com/')
登入後複製

將上述方法組合成一個程式碼區塊:

將上述方法組合成一個程式碼區塊:

將上述方法組合成一個程式碼區塊:

將上述方法組合成一個程式碼區塊:
  • 歷史史方法背景
  • navigator.webdriver 標誌由W3C定義為指示用戶代理處於遠端控制之下的方式。

注意

調整這些參數可能會幹擾瀏覽器導航並使 WebDriver 實例可偵測到。

更新 Selenium Python 客戶端現在支援execute_cdp_cmd方法。 增加了額外的參數以進一步改善檢測預防。 結論透過遵循這些方法,您可以有效地修改 navigator.webdriver 標誌和防止網站偵測您的 Selenium 驅動的瀏覽器。但是,請務必謹慎處理這些變更以避免被發現。

以上是如何防止 Selenium Webdriver 被網站偵測到?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板