通過每一項機器人偵測測試的隱形 Chromium。 Playwright 的無痛替換—— 換掉一行 import, 你的爬蟲就能在 Cloudflare Turnstile 與 reCAPTCHA v3 之下, 以「人類」的身分自由通行。
CloakBrowser 是一顆自行編譯的 Chromium binary,
外覆一層輕薄的 Python/JavaScript 包裝,提供與 Playwright
完全相同的 API。差別在於:所有「我是機器人」的指紋
——navigator.webdriver、Canvas 雜湊、WebGL renderer、
AudioContext、字體列舉、TLS ja3/ja4、HTTP/2 設定——
都被直接編譯進二進位檔,而非用 JavaScript 注入或啟動參數遮蓋。
這是它真正的價值主張:偵測網站看到的是一個真實的瀏覽器,
因為它就是一個真實的瀏覽器。沒有 JS 補丁可以被識破,
沒有 CDP 洩漏,沒有 HeadlessChrome 字串卡在 UA 裡。
playwright-stealth、
undetected-chromedriver、puppeteer-extra 都靠 JS 注入或調整 flag。
每次 Chrome 更新都會打破它們,而反機器人系統甚至能偵測「補丁本身」。
CloakBrowser 改寫原始碼,從根斷絕這條偵測路線。
過去三年最常見的選擇——playwright-stealth、
undetected-chromedriver、Camoufox——
各自在 2025 前後遇到瓶頸:JS 注入易被識破、Chrome 更新破壞補丁、
或像 Camoufox 被反機器人廠商針對性反編譯。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) | 否 | 是 |
安裝後第一次執行時,binary(約 200 MB)會自動下載並快取到
~/.cloakbrowser。完全不需要先跑
playwright install chromium——CloakBrowser
會帶它自己的 Chromium。
# Python pip install cloakbrowser # Node.js(Playwright 或 Puppeteer 二選一) npm install cloakbrowser playwright-core npm install cloakbrowser puppeteer-core # Linux 需要的系統函式庫 playwright install-deps chromium
from cloakbrowser import launch browser = launch() # 預設 headless page = browser.new_page() page.goto("https://protected-site.com") # 不再被擋 print(page.title()) browser.close()
- 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")
API 表面刻意保持極小——它的工作只是把對的旗標傳給 Chromium binary,
然後把標準的 Playwright Browser 物件還給你。
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")
from cloakbrowser import binary_info, clear_cache, ensure_binary print(binary_info()) # 檢查 binary 版本與安裝狀態 clear_cache() # 強制重新下載 ensure_binary() # Docker build 時預先抓 binary,容器啟動即用
以下三件事是「進階使用者」與「真的能繞過偵測的使用者」之間的差距: 指紋種子、人類化、與 session 隔離。
# 固定種子 → 同一台「裝置」反覆登入 # 隨機種子 → 每次都是新裝置 browser = launch(args=["--fingerprint=12345"]) # 強制平台(Linux 機器偽裝成 Windows) browser = launch(args=[ "--fingerprint-platform=windows", "--fingerprint-gpu-vendor=NVIDIA Corporation", ])
# humanize=True 自動加入:滑鼠 bezier 曲線移動、打字節奏、隨機 idle browser = launch( humanize=True, human_config={ "mistype_chance": 0.1, # 10% 機率打錯然後 backspace "typing_delay": 50, # 平均 50ms / 字 "idle_between_actions": True, }, )
# 開啟 web UI 來管理 N 個 profile,每個獨立 fingerprint + proxy docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager # 開 http://localhost:8080 → 建立 profile → Launch → 完成
2026 的 AI agent 幾乎都需要一個能上網、能登入、能點按鈕的瀏覽器。 CloakBrowser 已被直接整合進 browser-use、Crawl4AI、 Scrapling、Stagehand、 LangChain,甚至作為 Claude Computer Use 的執行載體。
整合有兩種模式:直接讓框架啟動我們的 binary,或用 CDP 連到一個已經跑起來的 CloakBrowser。
# 適用 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
# 適用 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 需要包裝層額外注入
以下整理自 r/webscraping、爬蟲技術圈、以及 Camoufox 後續討論的共識, 對 CloakBrowser 一類的「原始碼級隱形瀏覽器」尤其受用。
同一個 IP 每次來都是「不同裝置」會被評分系統視為高風險。社群實測:固定 --fingerprint=N + 持久化 cookie,reCAPTCHA v3 分數能再往上推 0.1–0.2。
隱形指紋處理得再好,IP 信譽不行就是擋。Cloudflare 在 2026 已大量參考 IP 信譽,datacenter 池幾乎一進去就被升級到 Turnstile managed challenge。
真實使用者很少 headless。在無 GUI 機器上用 Xvfb :99 -screen 0 1920x1080x24 & 加 export DISPLAY=:99,再以 headless=False 啟動,能擋掉幾條 headless 偵測。
某些網站會偵測「乾淨無歷史」的 session(incognito 行為)。每個帳號掛一個獨立 user_data_dir,配上獨立 proxy + 固定 seed,可防止跨帳號連動封禁(shadow ban)。
若把 CloakBrowser 包進 FastAPI/uvicorn,uvicorn[standard] 預設使用 uvloop,會導致 subprocess pipe hang。改用 uvicorn --loop asyncio 解決。
某些網站對「無 cookie + HTTP/2」的第一次連線一律 challenge——這在所有 Chromium 都會發生。對策:先用便宜流量「養 cookie」,再切到目標頁面。
2026 的偵測系統會評分「滑鼠軌跡是否自然、打字是否有節奏」。完美的指紋 + 機器般的瞬間 click,仍然會被 DataDome 抓出來。
Camoufox 被反編譯後,反機器人廠商建立了專屬的「Camoufox 流量標記」。社群建議:用 Chromium-based 工具,並隨機化 UA/viewport 範圍,避免你的流量在分佈上太均勻一致。
社群共識:付費 CAPTCHA solver 是「壞掉的隱身術」的補丁。如果你的設定對了,CAPTCHA 根本不該被觸發。看到 Turnstile managed challenge = 重新檢查 IP 與指紋,而不是去付 2captcha。
CloakBrowser 會帶自己的 binary。跑 playwright install chromium 只會多下載一份用不到的官方 Chromium,浪費 200 MB。你只需要 playwright install-deps chromium(系統函式庫)。
CloakBrowser 的甜蜜點是「需要高擬真度、又不想付每月 $49–$299 訂閱費」的場景。
CloakBrowser 本身只是一個瀏覽器。安裝與使用它合法,就像安裝 Chrome 或 Firefox 一樣。但你拿它做什麼,責任在你——違反目標網站 ToS、繞過 DRM、未授權存取,這些問題與工具本身無關。專案 README 明確不背書任何違反 ToS 的行為。
Camoufox 修補 Firefox,CloakBrowser 修補 Chromium。差異有三:(1) Chromium 市佔約 70%,Firefox 只有 2%,後者大量流量本身就突兀;(2) Chromium 的 TLS ja3/ja4/Akamai 指紋與真實 Chrome 一致,更難辨識;(3) Camoufox 於 2025/03 停止維護,且開源被反機器人廠商針對性反編譯;CloakBrowser 持續更新。
可能。這是場軍備競賽。Source-level 補丁比 config-level 難偵測,但不是不可能。專案會持續監控與更新。對使用者來說的對策:固定 seed + 良好的 cookie 管理 + 住宅代理 + 適度的人類化行為,整體機率會比任何單一工具都低。
目前 Linux x86_64 已正式發布,macOS arm64(Apple Silicon)與 macOS Intel 為「即將推出」,Windows 列為計畫中。如果是生產環境,建議優先以 Linux 容器化部署。
可以。直接 launch(proxy="http://user:pass@host:port"),也支援 SOCKS5(包含 QUIC/HTTP3 over UDP ASSOCIATE)。建議使用住宅代理或行動代理;機房 IP 在 2026 已幾乎不可用。
某些網站對「無 cookie 的 HTTP/2 第一次連線」一律出 challenge——這在所有 Chromium 都會發生,與 CloakBrowser 無關。解法:先用低流量頁面「養」cookie,再進主要目標頁。
專案內附 Dockerfile,且建議在 build 階段呼叫 ensure_binary() 預先下載 binary(約 200 MB),讓容器啟動時間最短。注意:用 uvloop 的 web framework(如 uvicorn[standard])需改成 --loop asyncio。
本工具的目的是讓「合法的自動化」不被誤判為攻擊。它不適合也不該用於:未授權的個資抓取、繞過付費內容、騷擾、廣告詐騙、規避法律調查。請務必先閱讀目標網站的 ToS 與 robots.txt,並評估你所在司法管轄的爬蟲相關判例(台灣以民法侵權與營業秘密法為主要參考)。