CloakHQ // CloakBrowser // Dossier-2026.05
● Active MIT License Chromium 145
隱形操作檔案 // Stealth Operations Brief

CloakBrowser.

通過30/30 項機器人偵測測試的隱形 Chromium。 更換一行 import 即可從 Playwright 遷移,爬蟲在 Cloudflare Turnstile 與 reCAPTCHA v3 環境下以正常瀏覽器身分運行。

30/30
偵測測試通過
0.9
reCAPTCHA v3 分數
33+
C++ 原始碼修補
1 行
即可從 Playwright 切換
// 01 — 簡介

CloakBrowser 的設計原理

CloakBrowser 是一顆自行編譯的 Chromium binary, 外覆一層輕薄的 Python/JavaScript 包裝,提供與 Playwright 完全相同的 API。所有機器人指紋識別特徵,包括 navigator.webdriver、Canvas 雜湊、WebGL renderer、 AudioContext、字體列舉、TLS ja3/ja4、HTTP/2 設定, 均直接編譯進二進位檔,而非透過 JavaScript 注入或啟動參數覆蓋。

偵測系統看到的是一個正常 Chromium,因為它就是正常 Chromium。 不存在可被識破的 JS 補丁,無 CDP 洩漏,UA 中也不含 HeadlessChrome 字串。

// 設計哲學 Config-level 補丁容易失效。playwright-stealthundetected-chromedriverpuppeteer-extra 均依賴 JS 注入或 flag 調整。 每次 Chrome 更新都可能破壞它們,反機器人系統甚至能識別補丁本身的存在。 CloakBrowser 直接改寫原始碼,從根源消除這條偵測路線。

偵測測試結果

reCAPTCHA v30.9 / 1.0
Cloudflare TurnstilePASS
FingerprintJS BotPASS
BrowserScanNORMAL 4/4
ShieldSquare(yad2)PASS
bot.incolumitas.com1 fail(規格項)
navigator.webdriverfalse
CDP 偵測未被偵測
// 02 — 對照

與其他隱形方案比較

常見選擇,包括 playwright-stealthundetected-chromedriverCamoufox, 各自在 2025 前後遇到瓶頸:JS 注入易被識破、Chrome 更新破壞補丁, Camoufox 則被反機器人廠商針對性反編譯後於 2025/03 停止維護。CloakBrowser 定位為 Camoufox 的替代方案,引擎為市佔約 70% 的 Chromium, 而非市佔約 2% 的 Firefox。

項目 Playwright playwright-stealth UC Driver Camoufox CloakBrowser
reCAPTCHA v3 0.1 0.3–0.5 0.3–0.7 0.7–0.9 0.9
Cloudflare Turnstile 失敗 有時 有時 通過 通過
補丁層級 JS 注入 Config 補丁 C++(Firefox) C++(Chromium)
Chrome 更新後 經常壞 經常壞 可用 可用
維護狀態 活躍 停滯 停滯 2025/03 停更 活躍
引擎 Chromium Chromium Chrome Firefox Chromium
Playwright 原生 API 否(Selenium)
// 03 — 快速上手

快速安裝與執行

安裝後第一次執行時,binary(約 200 MB)會自動下載並快取到 ~/.cloakbrowser。完全不需要先跑 playwright install chromium。CloakBrowser 內附自己的 Chromium binary。

// shell · 安裝
# Python
pip install cloakbrowser

# Node.js(Playwright 或 Puppeteer 二選一)
npm install cloakbrowser playwright-core
npm install cloakbrowser puppeteer-core

# Linux 需要的系統函式庫
playwright install-deps chromium
// python · 最小可運作範例
from cloakbrowser import launch

browser = launch()                            # 預設 headless
page = browser.new_page()
page.goto("https://protected-site.com")   # 不再被擋
print(page.title())
browser.close()
// migration · 從 Playwright 遷移(差異一行)
- from playwright.sync_api import sync_playwright
- pw = sync_playwright().start()
- browser = pw.chromium.launch()
+ from cloakbrowser import launch
+ browser = launch()

# 後面的程式完全不動
page = browser.new_page()
page.goto("https://example.com")
// 04 — 核心 API

核心啟動函式說明

API 介面保持精簡。其作用是將正確的旗標傳遞給 Chromium binary, 並回傳標準的 Playwright Browser 物件。

// python · 四種啟動模式
from cloakbrowser import launch, launch_async, launch_context, launch_persistent_context

# 1. 同步、headless
browser = launch()

# 2. 帶 proxy(住宅級代理建議)
browser = launch(proxy="http://user:pass@proxy:8080")

# 3. headful(用 Xvfb 在無 GUI 的 Linux 伺服器上跑)
browser = launch(headless=False)

# 4. 非同步
async def main():
    browser = await launch_async()
    page = await browser.new_page()
    await page.goto("https://example.com")
    await browser.close()

# 5. 一次給好 UA/viewport/locale/時區
context = launch_context(
    user_agent="Mozilla/5.0 ...",
    viewport={"width": 1920, "height": 1080},
    locale="zh-TW",
    timezone="Asia/Taipei",
)

# 6. 帶 cookie/localStorage 的持久 profile
context = launch_persistent_context(user_data_dir="./profile-a")
// python · 工具函式
from cloakbrowser import binary_info, clear_cache, ensure_binary

print(binary_info())   # 檢查 binary 版本與安裝狀態
clear_cache()          # 強制重新下載
ensure_binary()        # Docker build 時預先抓 binary,容器啟動即用
// 05 — 進階用法

進階指紋與行為配置

指紋種子、人類化行為、session 隔離是影響偵測繞過成效的三項主要配置。

// python · 指紋種子(fingerprint seed)
# 固定種子 → 同一台「裝置」反覆登入
# 隨機種子 → 每次都是新裝置
browser = launch(args=["--fingerprint=12345"])

# 強制平台(Linux 機器偽裝成 Windows)
browser = launch(args=[
    "--fingerprint-platform=windows",
    "--fingerprint-gpu-vendor=NVIDIA Corporation",
])
// 關鍵原則 同一 IP 反覆訪問同一網站時,請使用固定 seed。 reCAPTCHA v3 Enterprise 等評分系統會將「指紋每次不同、IP 卻不變」判定為異常訊號。 固定 seed 搭配持久化 cookie 與 localStorage,可使 session 表現為回訪使用者。
// python · 人類化操作
# humanize=True 自動加入:滑鼠 bezier 曲線移動、打字節奏、隨機 idle
browser = launch(
    humanize=True,
    human_config={
        "mistype_chance": 0.1,        # 10% 機率打錯然後 backspace
        "typing_delay": 50,           # 平均 50ms / 字
        "idle_between_actions": True,
    },
)
// docker · 多帳號隔離(CloakBrowser Manager)
# 開啟 web UI 來管理 N 個 profile,每個獨立 fingerprint + proxy
docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager

# 開 http://localhost:8080 → 建立 profile → Launch → 完成
// 06 — AI Agent 整合

AI Agent 的瀏覽器執行層

AI agent 框架需要可登入、可點擊的瀏覽器執行層。 CloakBrowser 已整合至 browser-useCrawl4AIScraplingStagehandLangChain,並可作為 Claude Computer Use 的執行載體。

整合有兩種模式:由框架直接啟動 binary,或以 CDP 連線至已執行中的 CloakBrowser 實例。

// python · 模式 A:框架直接啟動 binary
# 適用 Selenium、Stagehand、undetected-chromedriver
from cloakbrowser.download import ensure_binary
from cloakbrowser.config import get_default_stealth_args

binary_path = ensure_binary()              # 沒下載就自動下載
stealth_args = get_default_stealth_args()  # 所有指紋旗標

# 把上面兩個塞給你框架的 launch options
// python · 模式 B:CDP 連線
# 適用 browser-use、Crawl4AI、Scrapling
from cloakbrowser import launch_async

browser = await launch_async(args=["--remote-debugging-port=9242"])

# 你的 AI agent 框架連到 http://127.0.0.1:9242
# 隱形指紋自動生效;只有 humanize 需要包裝層額外注入
// 07 — 社群實戰建議

社群整理的配置建議

以下整理自 r/webscraping 及 Camoufox 後續討論,適用於原始碼級隱形瀏覽器的配置實務。

// TIP 01 · 種子策略

同 IP 反覆訪問,請固定 seed

同一 IP 每次呈現不同裝置指紋,評分系統會將其標記為高風險。固定 --fingerprint=N 搭配持久化 cookie,可使 reCAPTCHA v3 分數上升 0.1–0.2(依 r/webscraping 討論回報)。

// TIP 02 · 代理

使用住宅或行動代理

指紋隱形效果再好,IP 信譽低仍會被攔截。Cloudflare 在 2026 大量採用 IP 信譽評分,datacenter IP 幾乎一律觸發 Turnstile managed challenge。

// TIP 03 · 顯示模式

Linux 伺服器以 Xvfb 執行 headful 模式

headless 模式存在特定偵測向量。在無 GUI 環境中使用 Xvfb :99 -screen 0 1920x1080x24 & 搭配 export DISPLAY=:99,再以 headless=False 啟動,可規避部分 headless 偵測。

// TIP 04 · Session 隔離

多帳號以 launch_persistent_context() 隔離

部分網站會偵測空白歷史記錄的 session(incognito 特徵)。為每個帳號指定獨立的 user_data_dir、代理與固定 seed,可降低跨帳號連帶封禁的機率。

// TIP 05 · 非同步陷阱

FastAPI/uvicorn 需指定 --loop asyncio

uvicorn[standard] 預設使用 uvloop,會導致 subprocess pipe hang。在 FastAPI 環境中使用 CloakBrowser 時,請改用 uvicorn --loop asyncio

// TIP 06 · HTTP/2 冷啟動

首次無 cookie 連線可能觸發 challenge

部分網站對「無 cookie 的 HTTP/2 首次連線」一律發出 challenge,這在所有 Chromium 均會發生。對策:先以低敏感頁面建立 cookie,再訪問目標頁面。

// TIP 07 · 行為,不只是指紋

啟用 humanize=True

偵測系統會評估滑鼠軌跡與打字節奏。指紋完整但操作行為機械化,仍可能被 DataDome 等系統識別。

// TIP 08 · 流量分佈

隨機化 UA 與 viewport,避免流量分佈過於一致

Camoufox 被反編譯後,反機器人廠商建立了對應的流量特徵標記。使用 Chromium-based 工具並隨機化 UA 與 viewport 範圍,可降低被建立專屬特徵檔案的風險。

// TIP 09 · 不要解 CAPTCHA

目標是讓 CAPTCHA 不觸發,而非解題

付費 CAPTCHA solver 是隱身設定不當時的補救措施。配置正確時,CAPTCHA 不應被觸發。出現 Turnstile managed challenge 時,應重新檢查 IP 與指紋配置,而非依賴 2captcha 等解題服務。

// TIP 10 · 別跑 playwright install

不需要執行 playwright install chromium

CloakBrowser 內附自己的 binary,執行 playwright install chromium 只會額外下載一份用不到的官方 Chromium(約 200 MB)。Linux 環境只需執行 playwright install-deps chromium 安裝系統函式庫。

// 08 — 使用情境

主要應用情境

CloakBrowser 適用於需要高擬真瀏覽器行為,且不依賴商業代管服務(月費 $49–$299)的自托管場景。

01
高頻資料抓取
電商價格、SERP、地圖、旅遊、財經資料。Cloudflare Turnstile(managed 或 non-interactive)會攔截一般 Playwright;CloakBrowser 以原始碼層修補通過偵測。
02
多帳號自動化維運
社群、廣告平台、客服系統。用 cloakbrowser-manager 為每個帳號分配獨立 fingerprint + proxy,避免被識別為「同一個操作者」。
03
AI Agent 的瀏覽器身體
browser-use、Crawl4AI、Stagehand、LangChain、Claude Computer Use 已支援直接使用 CloakBrowser。讓 LLM 在瀏覽受保護網站時不被機器人偵測攔截。
04
反機器人系統測試
安全研究人員與防禦方可使用 CloakBrowser 驗證偵測系統對進階隱形瀏覽器的攔截效果。
05
E2E 測試的真實環境模擬
部分 SaaS 在 staging 階段需要驗證真實使用者體驗,而一般 Playwright 測試會被自家防火牆攔截。CloakBrowser 提供更接近真實 Chrome 的 TLS 與 HTTP/2 行為。
// 09 — 常見問題

常見問題與限制

它合法嗎?

CloakBrowser 本身只是一個瀏覽器,安裝與使用合法,與安裝 Chrome 或 Firefox 相同。使用者對自身的操作行為負責,包括違反目標網站 ToS、繞過 DRM、未授權存取等,均與工具本身無關。專案 README 明確不背書任何違反 ToS 的行為。

跟 Camoufox 有什麼差別?

Camoufox 修補 Firefox,CloakBrowser 修補 Chromium。差異有三:(1) Chromium 市佔約 70%,Firefox 只有 2%,後者大量流量本身就突兀;(2) Chromium 的 TLS ja3/ja4/Akamai 指紋與真實 Chrome 一致,更難辨識;(3) Camoufox 於 2025/03 停止維護,且開源被反機器人廠商針對性反編譯;CloakBrowser 持續更新。

偵測網站總有一天會抓到它嗎?

有可能。原始碼層補丁比 config-level 補丁更難偵測,但並非不可突破。專案持續監控偵測系統的更新。使用者端的對策:固定 seed、完整的 cookie 管理、住宅代理、適度的行為人類化,可降低整體被偵測機率。

支援哪些平台?

目前 Linux x86_64 已正式發布,macOS arm64(Apple Silicon)與 macOS Intel 為「即將推出」,Windows 列為計畫中。如果是生產環境,建議優先以 Linux 容器化部署。

能用我自己的 proxy 嗎?

可以。直接 launch(proxy="http://user:pass@host:port"),也支援 SOCKS5(包含 QUIC/HTTP3 over UDP ASSOCIATE)。建議使用住宅代理或行動代理;機房 IP 在 2026 已幾乎不可用。

為什麼第一次連線會被擋?

部分網站對無 cookie 的 HTTP/2 首次連線一律發出 challenge,這在所有 Chromium 均會發生,與 CloakBrowser 無關。解法:先以低敏感頁面建立 cookie,再訪問主要目標頁面。

能在 Docker / CI 跑嗎?

專案內附 Dockerfile,且建議在 build 階段呼叫 ensure_binary() 預先下載 binary(約 200 MB),讓容器啟動時間最短。注意:用 uvloop 的 web framework(如 uvicorn[standard])需改成 --loop asyncio

// 倫理提醒

本工具的目的是讓「合法的自動化」不被誤判為攻擊。它不適合也不該用於:未授權的個資抓取、繞過付費內容、騷擾、廣告詐騙、規避法律調查。請務必先閱讀目標網站的 ToS 與 robots.txt,並評估你所在司法管轄的爬蟲相關判例(台灣以民法侵權與營業秘密法為主要參考)。