project
camofox-browser - オープンソースのAIエージェント型アンチ検出ブラウザ
Camofox Browserは、Camoufox(フィンガープリンティング機能を備えた、大幅に改良されたC++版Firefox)をベースに構築されたオープンソースのAIエージェント向けアンチ検出ブラウザサーバーです。REST APIを介して、構造化されたウェブページのスナップショット(サイズを縮小したもの)をAIに提供します。
camofox-browserとは何ですか?
Camofox Browserは、Camoufox(FirefoxのC++フィンガープリント版を大幅に改良したもの)をベースにした、オープンソースのAIエージェント向けアンチ検出ブラウザサーバーです。REST APIを介して、構造化されたウェブページのスナップショット(サイズが90%以上削減)をAIに提供し、AIとの直接的なやり取りのために安定した要素参照(e1、e2など)を生成します。Camofox BrowserはC++レベルのフィンガープリント偽造技術を採用しており、Cloudflareなどの主流のアンチスクレイピング検証方法を回避します。また、Cookieのインポート、セッションの永続化、15種類以上の検索マクロをサポートしています。
camofox-browseの主な機能
-
C++レベルの検出回避型ブラウジング: 基盤となる実装は、Camoufoxと呼ばれるFirefoxの改良版です。C++実装層では、ハードウェアの同時実行性、WebGLレンダラー、AudioContext、画面ジオメトリ、WebRTCといった、JavaScript層では検出できない指紋情報を偽造します。
-
構造化されたウェブページのスナップショット: 元の HTML を番号付きのアクセシビリティ スナップショットに抽出することで (サイズを 90% 以上削減)、AI は直接...
e1、e2参照とページ間のやり取りが安定するまでお待ちください。 -
Cookieのインポートとセッションの永続性: Netscape形式のCookieファイルをインポートすることで、ログイン不要のアクセスを実現します。ユーザーセッションCookieとlocalStorageは自動的にローカルマシンに保存され、再起動後もログイン状態が維持されます。
-
検索マクロショートカット: 15種類以上の主要プラットフォーム(例:...)に対応した組み込み検索マクロ
@google_search、@reddit_search、@youtube_search単一のコマンドで直接ターゲットページにアクセスでき、RedditマクロはJSONデータを返します。 -
プロキシとGeoIPは自動的にマッチングされます。 住宅用プロキシとBackconnectローテーションプロキシをサポートし、フィンガープリントの一貫性を維持するために、プロキシの送信IPアドレスに基づいてブラウザのタイムゾーン、言語、地理座標を自動的に設定します。
-
YouTube字幕抽出: yt-dlpを統合することで、APIキーを必要とせずにあらゆるYouTube動画から字幕を素早く抽出でき、多言語フィルタリングにも対応しています。
-
VNCビジュアルインタラクティブログイン: noVNCを使用してブラウザ上で複雑なウェブサイトへの対話型ログインを手動で完了し、保存された状態をエクスポートして、エージェントによるその後の自動再利用を可能にする。
-
セッションのトレースとデバッグ: Playwrightのセッションごとのトラッキング、スクリーンショット、DOMスナップショット、およびネットワークリクエストの生成をサポートします。
.zip文書は今後の閲覧のために公開されています。 -
軽量な展開と柔軟なスケーリング: アイドル時のメモリ使用量は約40MBで、Docker、Fly.io、Railwayによるワンクリックデプロイに対応し、ブラウザエンジンの遅延読み込みとアイドル時の自動シャットダウン機能を備えています。
camofox-browseの技術原理
-
C++レイヤーのフィンガープリント偽装: CamoufoxはFirefoxのソースコードを改変します。
navigator.hardwareConcurrencyWebGLレンダリング文字列、AudioContextフィンガープリント、画面解像度、WebRTCなどのプロパティは、JavaScriptが実行される前に、スクレイピング対策システムによって偽造されます。 -
アクセシビリティツリーの概要: Playwrightのアクセシビリティツリーは、ページのセマンティック構造を抽出するために使用され、安定した参照を持つテキストスナップショットを生成します。そして、このスナップショットは元のDOMの代わりにLLMに渡されます。
-
劇作家のブラウザコンテキスト分離: 各ユーザーは独立した
BrowserContextセッションへの干渉を避けるため、Cookie、localStorage、およびキャッシュは完全に分離されています。 -
遅延読み込みとアイドルガベージコレクション: Camoufoxエンジン(約300MB)は最初の要求時に起動され、継続的なリソース消費を削減するため、5分間非アクティブなセッションが続くと自動的にシャットダウンされます。
-
構造化されたJSONログ: すべてのリクエストとレスポンスは、以下の内容を含む単一行のJSONオブジェクトとして出力されます。
reqId分散環境におけるログの集約と追跡を容易にします。
camofox-browseの使い方
-
依存関係をインストールします: 埋め込む
npm install @askjo/camofox-browser初回インストール時には、約300MBのCamoufoxエンジンが自動的にダウンロードされます。 -
地元のスタートアップ企業: リポジトリをクローンした後に実行してください
npm install && npm startこのサービスはデフォルトでリッスン状態になります。http://localhost:9377。 -
アクセスキーの設定(本番環境): 32ビットの16進数キーを生成し、環境変数を設定します。
CAMOFOX_ACCESS_KEYすべてのリクエストには以下を含める必要がありますAuthorization: Bearer <key>。 -
ログイン不要のアクセスを実現するためにクッキーをインポートする: ブラウザからエクスポートされた Netscape 形式の Cookie ファイルを次の場所に配置し
~/.camofox/cookies/このディレクトリを使用すると、APIまたはOpenClawプラグインを介してインポートツールを呼び出すことで、セッションを挿入できます。 -
タブを作成してスナップショットを取得する: に向かって
/tabsタブを作成するためにPOSTリクエストを送信し、次に呼び出します.../tabs/:id/snapshotベルトを手に入れろe1、e2参照されている構造化ページの概要。 -
ページ操作を実行する: 合格
/tabs/:id/clickまたは/tabs/:id/typeクリック操作と入力操作を有効にするには、要素の参照番号とテキストコンテンツを渡してください。 -
検索マクロを使用してナビゲートする: 電話
/tabs/:id/navigateそして送信"macro": "@google_search"そして"query": "关键词"検索結果ページに直接アクセスします。 -
Dockerデプロイメント: プロジェクトのルートディレクトリで実行してください。
make upMakefileはCPUアーキテクチャを自動的に検出し、バイナリファイルを事前にダウンロードします。ビルドは約30秒後に開始されます。
camofox-browseの主な利点
-
主流のスクレイピング対策とCAPTCHA対策を回避する: 指紋認証はC++レイヤーで行われるため、GoogleやCloudflareなどのプラットフォームにおけるボット検出を確実に通過でき、頻繁な人間による認証を回避できます。
-
トークンは非常に効率的です。 構造化されたスナップショットは、元のHTMLと比較してサイズを90%以上削減し、LLMコンテキストウィンドウのフットプリントとAPI呼び出しコストを大幅に削減します。
-
要素参照は安定していて信頼性が高い。 ページレイアウトに若干の調整を加えた後、
e1、e2参照はアクセシビリティツリー全体を通して有効性を維持できるため、DOMの変更によってエージェントが動作しなくなる可能性が低減されます。 -
すぐに使える検索機能: 15種類以上の検索マクロが主要な情報源を網羅しており、検索URLの構築やページの解析を行うエージェントは不要です。Redditなどのサイトは、構造化されたJSONを直接返します。
-
生産レベルの安全モデル: Cookieのインポートはデフォルトで無効になっています(必須)。
CAMOFOX_API_KEYグローバルアクセスキー認証、パストラバーサル保護、すべての機密データのランタイムインジェクション、およびハードコードされたキーの排除をサポートしています。
camofox-browse のプロジェクトアドレス
- GitHubリポジトリ:https://github.com/jo-inc/camofox-browser
camofox-browseと類似製品の比較
| 寸法 | Camofox Browser | Puppeteer / Playwright | Selenium WebDriver |
|---|---|---|---|
| 探知回避機能 | C++レイヤーの指紋偽造により、CloudflareとGoogleの認証をネイティブに回避します。 | ステルスプラグインは別途インストールする必要があります。プラグイン自体が新たな指紋となる可能性があります。 | ネイティブの検出回避機能は搭載されていません。外部のフィンガープリントブラウザまたはプロキシプールを使用する必要があります。 |
| AIとのインタラクション効率 | 構造化されたアクセシビリティスナップショット。サイズは90%以上削減され、要素参照は安定しています。 | 完全なHTMLを取得するには、自分で解析するか、スクリーンショットを撮ってAIに送信して認識させる必要があります。 | 完全なHTMLに戻すと、解析コストが高くなり、ネイティブな要素番号付けメカニズムが欠如する。 |
| デプロイメントのリソース消費量 | 約40MBの空き容量、遅延読み込み機能、自動シャットダウン機能を搭載。 | Chromiumプロセスは常駐型であり、大量のメモリを消費します。 | 常時稼働するブラウザインスタンスは、多くのリソースを消費します。 |
| Cookie/セッション管理 | Netscape Cookieのインポート、セッションの永続化、VNCインタラクティブログイン機能が組み込まれています。 | クッキーの挿入とコンテキスト管理のコードは手動で記述する必要があります。 | プロファイルとCookieの挿入は手動で設定する必要があります。 |
| 検索ショートカット | 15以上のプラットフォームに対応した検索マクロを内蔵。RedditはJSON形式で直接結果を返します。 | 検索マクロは組み込まれていません。URLと解析ロジックは自分で構築する必要があります。 | 組み込みの検索マクロはありません |
| プロキシ統合 | 居住用エージェントとBackconnectをネイティブでサポートし、タイムゾーン、言語、座標を自動的に同期します。 | プロキシパラメータは手動で設定する必要があります。GeoIPの自動マッチング機能はありません。 | プロキシは手動で設定する必要があります。GeoIPの自動マッチング機能はありません。 |
| 適用可能なシナリオ | AIエージェントによる検出回避型ブラウジング、クラウド自動化、本番環境レベルのデータ取得 | フロントエンドテスト、一般的なウェブページ自動化、ウェブクローラー開発 | 従来のエンドツーエンドテスト、複雑なエンタープライズレベルのテストフレームワーク |
camofox-browseのアプリケーションシナリオ
-
AIエージェントのWeb自動化: LLMベースのエージェントが、データ収集、フォーム入力、情報検索などのタスクを実行するための、プログラム可能なブラウザバックエンドを提供します。
-
Eコマースと競合他社の監視: プラットフォームのスクレイピング防止メカニズムを回避し、商品価格、在庫、レビュー情報を自動的に取得するだけでなく、ログイン時でもアカウントレベルのデータ収集をサポートします。
-
ソーシャルメディアの自動化: Cookieをインポートした後、Twitter、LinkedIn、Instagramなどのアカウントを自動的に管理し、コンテンツの公開、インタラクション、データ分析を実行します。
-
学術研究および世論調査: 検索マクロを使用して、Google、Wikipedia、Redditから情報をすばやく取得し、コンテンツ分析のためにYouTube動画の字幕を抽出します。
-
クラウドベースの自動テスト: VPSまたはコンテナ環境にデプロイされ、CI/CDプロセスにおけるエンドツーエンドテストとウェブページ監視をサポートするヘッドレスブラウザサービスとして機能します。