Firecrawl:97k⭐のWebデータAPI、任意のWebサイトをLLM対応の構造化データに変換
AI アプリケーションを構築する際、大規模言語モデルにWebサイト全体のコンテンツを読み取らせるにはどうすればよいか?Firecrawl はまさにこのために設計された Web データ API で、任意の Web サイトを LLM-ready な Markdown または構造化データに変換する。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | firecrawl/firecrawl |
| Stars | 97,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);
料金プラン
| プラン | 额度 | 価格 |
|---|---|---|
| Free | 500 credits/月 | 無料 |
| Hobby | 5,000 credits/月 | $19/月 |
| Standard | 50,000 credits/月 | $99/月 |
| Growth | 200,000 credits/月 | $299/月 |
Credits の消費:
- 標準ページのスクレイピング:1 credit
- 動的レンダリングページ:5-25 credits
- サイト全体クローリング:実際にスクレイピングしたページ数に応じて計算
類似ツールとの比較
| ツール | 特徴 | 料金 |
|---|---|---|
| Firecrawl | API 優先、LLM 最適化、マネージドサービス | credits 課金制 |
| Scrapy | Python フレームワーク、セルフホスティング、高い柔軟性 | 無料オープンソース |
| Puppeteer | ブラウザ自動化、独自インフラ構築が必要 | 無料(サーバー費用別途) |
| Playwright | マルチブラウザ対応、Microsoft 保守 | 無料(サーバー費用別途) |
自作クローラーと比較して、Firecrawl の強みは即座に使えること:
- ブラウザ環境のメンテナンス不要
- 反クローリング対策不要
- 大規模並列処理の管理不要
- データクレンジングとフォーマット不要
適用シナリオ
推奨
- AI ナレッジベース構築(RAG)
- 競合監視とデータ収集
- SEO 分析とコンテンツ監査
- ドキュメント移行(HTML → Markdown)
- トレーニングデータ準備
非推奨
- 高頻度のリアルタイムスクレイピング(コストが高い)
- 深いカスタマイズが必要なスクレイピングロジック
- データプライバシー要件が極めて高いシーン(データが第三者を経由)
注意事項
- Rate Limiting:無料版には厳しい頻度制限があり、本番環境ではアップグレード推奨
- Robots.txt:Firecrawl は robots.txt を尊重し、禁止されているサイトはスクレイピングできない
- AGPL ライセンス:セルフホスティング版は AGPL オープンソースライセンスに従う必要がある
- データプライバシー:マネージド 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 チーム |