AI アプリケーションを構築する際、大規模言語モデルにWebサイト全体のコンテンツを読み取らせるにはどうすればよいか?Firecrawl はまさにこのために設計された Web データ API で、任意の Web サイトを LLM-ready な Markdown または構造化データに変換する。

プロジェクト概要

属性内容
GitHubfirecrawl/firecrawl
Stars97,157
言語TypeScript
ライセンスAGPL-3.0
公式サイトfirecrawl.dev
特徴サイト全体クローリング、自動解析、LLM 最適化出力

コア機能

1. サイト全体クローリング(Scrape → Crawl)

Firecrawl は単一ページのスクレイピングだけでなく、サイト全体を再帰的にクロールできる:

# 単一ページのスクレイピング
curl -X POST https://api.firecrawl.dev/v1/scrape \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"url": "https://docs.example.com"}'

# サイト全体のクローリング
curl -X POST https://api.firecrawl.dev/v1/crawl \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{
    "url": "https://docs.example.com",
    "limit": 100,
    "scrapeOptions": {"formats": ["markdown", "html"]}
  }'

返されるのはクリーンな Markdown で、ナビゲーション、広告、フッターなどのノイズが自動的に除去される。

2. 自動構造化データ抽出

テキストのスクレイピングだけでなく、構造化情報も抽出できる:

import FirecrawlApp from '@mendable/firecrawl-js';

const app = new FirecrawlApp({ apiKey: 'your_key' });

// スクレイピングと特定フィールドの抽出
const result = await app.scrapeUrl('https://example.com/product', {
  formats: ['extract'],
  extract: {
    schema: {
      type: 'object',
      properties: {
        title: { type: 'string' },
        price: { type: 'string' },
        description: { type: 'string' }
      }
    }
  }
});

3. LLM 向けに最適化

Firecrawl の出力は LLM のコンテキスト制限を考慮して設計されている:

  • Markdown 優先:HTML よりトークンを節約
  • インテリジェントなチャンキング:長いコンテンツを意味のあるブロックに自動分割
  • メタデータ保持:タイトル、リンク、画像などの構造情報を保持

4. 動的コンテンツ処理

多くの現代の Web サイトは JavaScript でレンダリングされており、Firecrawl はブラウザレンダリング機能を内蔵している:

{
  "url": "https://spa-app.example.com",
  "waitFor": 2000,
  "actions": [
    {"type": "click", "selector": "#load-more"},
    {"type": "wait", "milliseconds": 1000}
  ]
}

クイックスタート

# SDK のインストール
npm install @mendable/firecrawl-js
import FirecrawlApp from '@mendable/firecrawl-js';

const app = new FirecrawlApp({ apiKey: 'your_api_key' });

// 簡単なスクレイピング
const scrapeResult = await app.scrapeUrl('https://example.com', {
  formats: ['markdown', 'html']
});

console.log(scrapeResult.markdown);

// サイト全体のクローリング(非同期)
const crawlResult = await app.crawlUrl('https://example.com', {
  limit: 50,
  scrapeOptions: { formats: ['markdown'] }
});

// 完了を待って結果を取得
console.log(crawlResult.data);

料金プラン

プラン额度価格
Free500 credits/月無料
Hobby5,000 credits/月$19/月
Standard50,000 credits/月$99/月
Growth200,000 credits/月$299/月

Credits の消費

  • 標準ページのスクレイピング:1 credit
  • 動的レンダリングページ:5-25 credits
  • サイト全体クローリング:実際にスクレイピングしたページ数に応じて計算

類似ツールとの比較

ツール特徴料金
FirecrawlAPI 優先、LLM 最適化、マネージドサービスcredits 課金制
ScrapyPython フレームワーク、セルフホスティング、高い柔軟性無料オープンソース
Puppeteerブラウザ自動化、独自インフラ構築が必要無料(サーバー費用別途)
Playwrightマルチブラウザ対応、Microsoft 保守無料(サーバー費用別途)

自作クローラーと比較して、Firecrawl の強みは即座に使えること:

  • ブラウザ環境のメンテナンス不要
  • 反クローリング対策不要
  • 大規模並列処理の管理不要
  • データクレンジングとフォーマット不要

適用シナリオ

推奨

  • AI ナレッジベース構築(RAG)
  • 競合監視とデータ収集
  • SEO 分析とコンテンツ監査
  • ドキュメント移行(HTML → Markdown)
  • トレーニングデータ準備

非推奨

  • 高頻度のリアルタイムスクレイピング(コストが高い)
  • 深いカスタマイズが必要なスクレイピングロジック
  • データプライバシー要件が極めて高いシーン(データが第三者を経由)

注意事項

  1. Rate Limiting:無料版には厳しい頻度制限があり、本番環境ではアップグレード推奨
  2. Robots.txt:Firecrawl は robots.txt を尊重し、禁止されているサイトはスクレイピングできない
  3. AGPL ライセンス:セルフホスティング版は AGPL オープンソースライセンスに従う必要がある
  4. データプライバシー:マネージド API を使用する際、Web コンテンツは Firecrawl のサーバーを経由する

セルフホスティングオプション

データに敏感なシーンでは、Firecrawl をセルフホスティングできる:

git clone https://github.com/firecrawl/firecrawl.git
cd firecrawl
docker-compose up

セルフホスティングでは Redis、Playwright、API サービスなど複数のコンポーネントを管理する必要があり、運用コストは高め。

まとめ

Firecrawl は現在最も成熟した「Web サイト → LLM データ」変換ソリューションの一つだ。97k stars の背後には安定した API と活発な開発コミュニティがある。外部 Web サイトのコンテンツを読み込む必要がある AI アプリケーションを構築しているなら、Firecrawl は優先的に検討する価値がある。

公式サイト:firecrawl.dev | GitHub:firecrawl/firecrawl


属性内容
リポジトリhttps://github.com/firecrawl/firecrawl
ライセンスAGPL-3.0
メンテナFirecrawl チーム