🚀 はじめに
ブラウザ自動化スクリプトを書いたことがある人なら、誰もが経験する悪夢があります。
Cloudflareの「私はロボットではありません」チェック。Google reCAPTCHAの容赦ない低スコア。せっかく書いたスクリプトが途中で止まり、データ取得に失敗する。playwright-stealth を入れて、JSオーバーライドを追加して、Chromeのアップデートで壊れないことを祈る —— そんな泥沼の繰り返し。
最近GitHubで 22,000スター を獲得した CloakBrowser は、この問題に対するアプローチが根本的に違います。
🎯 CloakBrowserとは?
ChromiumのC++ソースコードレベルで58箇所の修正 を加え、バイナリとしてコンパイルした「検出されないブラウザ」です。
通常、PlaywrightやPuppeteerで操作されるブラウザには navigator.webdriver = true というフラグが立ちます。CloakBrowserはこれを C++レベルで false にハードコード。他にも57箇所の修正が施されています。
📊 ベンチマーク結果
実際のテストデータが衝撃的です:
| テスト | 通常Playwright | CloakBrowser |
|---|---|---|
| reCAPTCHA v3 スコア | 0.1(ボット判定) | 0.9(人間レベル) |
| Cloudflare Turnstile(非対話型) | 失敗 | 通過 |
| Cloudflare Turnstile(管理型) | 失敗 | 通過 |
| FingerprintJS | 検出 | 通過 |
| BrowserScan | 検出 | 正常(4/4) |
| ShieldSquare | ブロック | 通過 |
reCAPTCHA v3スコア 0.9 は人間レベルです。サーバーサイドで検証された本物のスコア。同じコードで、ブラウザバイナリだけ差し替えるだけで、ここまで結果が変わるのは驚きです。
🔍 検出されるシグナルの徹底比較
| シグナル | 通常Playwright | CloakBrowser |
|---|---|---|
navigator.webdriver |
true |
false |
navigator.plugins.length |
0 | 5 |
window.chrome |
undefined |
object |
| UA文字列 | HeadlessChrome |
Chrome/146.0.0.0 |
| CDP検出 | 検出 | 未検出 |
| TLS指紋 | 不一致 | Chromeと同一 |
| Canvas指紋 | 異常 | 正常 |
| WebGLレンダラー | SwiftShader |
実際のGPU |
| AudioContext | オシレーター不一致 | 正常 |
58箇所の修正は、Canvas指紋、GPUパラメータ、オーディオコンテキスト、フォント、画面パラメータ、ネットワークタイミングなど、ほぼすべての検出ポイントをカバーしています。
🧠 behavioral(行動)エミュレーション:humanize スイッチ
指紋対策だけでは不十分です。行動特性もボット検出の重要な判断材料です。
機械は直線的にマウスを動かし、一瞬で文字を入力します。人間のカーソル移動にはカーブと微細な揺れがあり、タイピングには文字ごとの思考時間があります。
CloakBrowserの humanize=True は、これらを完全にエミュレートします:
- 🖱️ マウス操作: ベジェ曲線パス + 自然なジッター + ターゲット手前での減速
- ⌨️ キーボード入力: 1文字ずつ、人間らしい「考え中」の間を挿入
- 📜 スクロール: 加速 → 定速 → 減速のリズム
すべてのマウス・キーボード・スクロールAPIが、humanize 有効時に完全に置き換えられます。
🔧 導入手順
CloakBrowserは Playwrightのドロップイン代替 として設計されています:
# Python
pip install cloakbrowser
# Node.js
npm install cloakbrowser
初回実行時に ~200MB のChromiumバイナリを自動ダウンロードし、ローカルにキャッシュ。2回目以降は即時起動します。
使い方はPlaywrightと全く同じ:
from cloakbrowser import sync_api
browser = sync_api.launch(humanize=True)
page = browser.new_page()
page.goto("https://www.google.com/recaptcha/api2/demo")
# reCAPTCHA score: 0.9 — 人間レベル
たった3行です。
🤖 AIエージェントとの統合
CloakBrowserは主要なAIエージェントフレームワークと互換性があります:
| フレームワーク | Stars | 対応 |
|---|---|---|
| browser-use | 70K+ | ✅ |
| Crawl4AI | 58K+ | ✅ |
| LangChain | 100K+ | ✅ |
| Crawlee | 8.6K+ | ✅ |
| Scrapling | 21K+ | ✅ |
| Stagehand | 21K+ | ✅ |
| Selenium | — | ✅ |
AIエージェントが本番環境で稼働するにつれ、ブラウザこそがエージェントの主要な接点になっています。フライト予約、自動テスト、モデル訓練用データ収集 —— すべてブラウザを経由します。
しかし、大半のWebサイトはAI駆動のブラウザをボットとしてブロックします。CloakBrowserは、この「最後のピース」を埋める存在です。
🏢 Browser Profile Manager
CloakBrowserにはブラウザプロファイルマネージャーも内蔵されています。Multilogin、GoLogin、AdsPowerといった商用アンチ検出ブラウザのセルフホスト代替として機能し、プロファイルごとに独立した指紋シード、Cookie、ストレージを保持します。
⚠️ 注意点
- バイナリライセンス: Python/JSラッパーはMITですが、バイナリ自体は「無料利用可・再配布不可」
- 初回DL: ~200MB、キャッシュ後は不要
- 完全ではない: DataDome、Akamai、PerimeterXなどの高度なサービスは常に進化中。現在のラウンドはCloakBrowserが勝っていますが、これは軍拡競争です
- Windows SmartScreen: 初回起動時に警告が出る可能性あり(バイナリは署名済み)
🔮 まとめ
CloakBrowserは、ブラウザ自動化の考え方を根本から変えました。
「既存ブラウザの上にJSハックを重ねる」のではなく、「最初から検出されないブラウザをソースレベルで作り込む」アプローチ。
22Kスターという数字は、コミュニティがこの方向性を支持している証拠です。AIエージェントが現実のWebと対話するための不可欠なインフラになりつつあります。
GitHub: github.com/CloakHQ/CloakBrowser
ドキュメント: cloakbrowser.com
Docker: Docker Hubでプレビルドイメージ公開中
対象読者: Webスクレイピング・ブラウザ自動化に関わるエンジニア、AIエージェント開発者、Playwright/Puppeteerユーザー