Maxunは、ブラウザ操作を記録するだけでウェブサイトからデータを抽出するAPIを作れる、オープンソースのノーコードスクレイピングプラットフォームです。GUIでの記録に加え、自然言語で抽出内容を指定するAIモードも用意されています。抽出結果はAPI、Webhook、Google Sheets、Airtableなどに連携できます。
フロントエンド(src/)でユーザーがブラウザ操作を記録すると、socket-connection経由でbrowser-managementのRemoteBrowser/BrowserPoolが制御する実ブラウザに操作が反映されます。実ブラウザは別コンテナのbrowser/server.tsが担い、playwright-extraとstealthプラグインでChromiumをWebSocketサーバーとして起動し、検知回避を図っています。記録した操作は「ロボット」としてPostgresに保存され、実行時はmaxun-core/src/interpret.tsとserver/src/workflow-management/classes/Interpreter.tsがワークフローを解釈し、browserSide/scraper.jsをページに注入してデータを収集します。AIモードではsdk/browserAgent.tsとanthropicTools.tsがLLMにページ構造(pageAnalyzer.js)を渡し、セレクタ候補を生成・検証(selectorValidator.ts)します。実行結果はMinIO/DB(storage/mino.ts, db.ts)に保存され、schedule-worker.tsとgraphileWorker.tsが定期実行を担当、最終的にwebhookやgsheet/airtable連携、公開APIで配信されます。
- STEP 01
docker-compose.ymlとENVEXAMPLEを基に.envを用意し、docker compose upでpostgres・minio・backend・frontend・browserの5コンテナが立ち上がる様子を確認します。
- STEP 02
ブラウザでFRONTEND_PORT(既定5173)にアクセスし、対象URLを入力してレコーダー画面を開き、クリックや選択操作を記録してみます。
- STEP 03
記録した操作を「ロボット」として保存し、実行ボタンを押すとbrowserコンテナ上のヘッドレスChromiumが操作を再現し、抽出結果がテーブル表示される流れを体験します。
- STEP 04
AIモードを選んだ場合は抽出したい内容を自然言語で記述し、ANTHROPIC関連のAPIキーまたはOLLAMA_BASE_URLの設定が求められる場面に遭遇します。
- STEP 05
取得したデータをCSV/JSON形式のAPIとして呼び出したり、Webhook URLやGoogle Sheets/Airtable連携を設定して自動送信される挙動を確認します。
- STEP 06
スケジュール機能で定期実行を設定し、schedule-worker経由で裏側のジョブが動いているかログで追ってみます。
記録したブラウザ操作が再現可能な「ロボット」として保存され、実行するたびに構造化データ(表形式の抽出結果)が得られます。これはAPIエンドポイント、Webhook通知、Google SheetsやAirtableへの書き込みとして外部に取り出せる状態になります。
docker-compose.ymlは既定でgetmaxun/maxun-backendなどの事前ビルド済みイメージを使う設定になっており、Dockerfile.backend等からのビルドはコメントアウトされているため、ソース変更を反映するには設定変更が必要です。
ChromiumをSYS_ADMIN権限やseccomp=unconfined、shm_size 2gb以上で動かす前提のため、セキュリティ制約の強い環境ではそのままでは動かしにくい可能性があります。
AIモードはANTHROPICのAPIキーやOLLAMA_BASE_URLなど外部LLM設定に依存しており、未設定だと動作しない機能だと考えられます。
legacyディレクトリに旧アーキテクチャのコンポーネント(pgboss-worker.tsなど)が残っており、現行のgraphileWorker系と役割が重複しているように見える点は、READMEだけでは判別できません。
ノーコードでスクレイピングロボットを作りたい人や、既存サイトを社内API化したいチームには向いている構成です。フロントエンド・バックエンド・専用ブラウザサービス・ワーカーという役割分担がdocker-compose.ymlとソース構造から一貫して確認でき、記録→保存→実行→配信という流れがコード上で裏付けられているため、実機を動かさなくても大枠の挙動判断は信頼できます。ただしAIモードや本番運用時のリソース要件・権限設定は実際の環境依存度が高く、その部分は自分の環境で検証する必要があります。