firecrawl-scraper について
データパイプラインや AI アプリを構築する開発者向けに、Firecrawl でウェブコンテンツを収集・抽出する方法を示すスキルです。単一ページの取得、サイト巡回、URL 発見、スキーマに基づく抽出に加え、ブラウザー操作や Workers REST API も扱います。
主な機能
- 01ページを Markdown、HTML、スクリーンショットで取得
- 02ドメインと深さを指定したサイト巡回
- 03サイト URL の発見
- 04スキーマに基づくデータ抽出
- 05取得中のブラウザー操作
活用シーン
- 01ナレッジベース用のドキュメント収集
- 02商品名と価格の抽出
- 03ニュース記事の取得
- 04サイト巡回前のページ発見
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ secondsky/ claude-skills --skill firecrawl-scraperインストール後、Claude Code で/firecrawl-scraperを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/common-patterns.mdendpoints.mdtemplates/firecrawl-crawl-example.pyfirecrawl-scrape-python.pyfirecrawl-scrape-typescript.tsfirecrawl-worker-fetch.ts詳細
Firecrawl Web Scraper Skill
ステータス:本番環境で利用可能 ✅ 最終更新日:2026-08-03 公式ドキュメント:https://docs.firecrawl.dev API バージョン:v2.5
Firecrawl とは?
Firecrawl は、ウェブサイト全体を LLM 対応のマークダウンまたは構造化データに変換するAI 向け Web データ APIです。以下の機能を備えています。
- JavaScript のレンダリング - クライアントサイドの JavaScript を実行し、動的コンテンツを取得します
- ボット対策の回避 - CAPTCHA やボット検出システムを回避します
- 形式の変換 - マークダウン、JSON、構造化データとして出力します
- スクリーンショットの取得 - ページの視覚的な表示を保存します
- ブラウザーの自動化 - フル機能のヘッドレスブラウザーを利用できます
API エンドポイント
1. /v2/scrape - 単一ページのスクレイピング
単一のウェブページをスクレイピングし、整理されたコンテンツを返します。
ユースケース:
- 記事のコンテンツを抽出する
- 製品の詳細を取得する
- 特定のページをスクレイピングする
- HTML をマークダウンに変換する
主なオプション:
formats:["markdown", "html", "screenshot"]onlyMainContent:true/false(ナビゲーション、フッター、広告を削除します)waitFor:スクレイピング開始前に待機する時間(ミリ秒)actions:ブラウザーの自動化アクション(クリック、スクロールなど)
2. /v2/crawl - サイト全体のクロール
開始 URL からアクセス可能なすべてのページをクロールします。
ユースケース:
- ドキュメントサイト全体をインデックス化する
- ウェブサイトのコンテンツをアーカイブする
- ナレッジベースを構築する
- 複数ページのコンテンツをスクレイピングする
主なオプション:
limit:クロールするページの最大数maxDepth:たどるリンクの深さallowedDomains:特定のドメインに制限するexcludePaths:特定の URL パターンを除外する
3. /v2/map - URL の検出
コンテンツをスクレイピングせずに、ウェブサイト上のすべての URL をマッピングします。
ユースケース:
- サイトマップを見つける
- すべてのページを検出する
- クロール戦略を計画する
- ウェブサイトの構造を監査する
4. /v2/extract - 構造化データの抽出
AI を使用して、ページから特定のデータ項目を抽出します。
ユースケース:
- 製品の価格と名前を抽出する
- 連絡先情報を解析する
- 構造化データセットを構築する
- カスタムデータスキーマを使用する
主なオプション:
schema:必要な構造を定義する Zod または JSON スキーマsystemPrompt:AI の抽出動作を指示します
認証
Firecrawl では、すべてのリクエストに API キーが必要です。
API キーの取得
- https://www.firecrawl.dev で登録します
- ダッシュボード → API Keys に移動します
- API キーをコピーします(
fc-で始まります)
安全な保管
API キーをコードに直接記述しないでください!
# .env file
FIRECRAWL_API_KEY=fc-your-api-key-here
# .env.local (for local development)
FIRECRAWL_API_KEY=fc-your-api-key-here
SDK のクイックスタート
Python
pip install firecrawl-py # v4.5.0+
from firecrawl import FirecrawlApp
import os
app = FirecrawlApp(api_key=os.environ.get("FIRECRAWL_API_KEY"))
result = app.scrape_url("https://example.com", params={"formats": ["markdown"], "onlyMainContent": True})
print(result.get("markdown"))
TypeScript/Node.js
bun add @mendable/firecrawl-js # v4.32.0+
import FirecrawlApp from '@mendable/firecrawl-js';
const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const result = await app.scrapeUrl('https://example.com', { formats: ['markdown'], onlyMainContent: true });
console.log(result.markdown);
参照:クロール、抽出、高度な使用例については templates/ をご覧ください。
一般的なユースケース
| ユースケース | エンドポイント | 主なオプション |
|---|---|---|
| ドキュメントのスクレイピング | crawl_url() | limit: 500、allowedDomains |
| 製品データの抽出 | extract() | Zod スキーマ + systemPrompt |
| ニュース記事のスクレイピング | scrape_url() | onlyMainContent: true、removeBase64Images |
| URL の検出 | map() | クロール前にすべてのページを見つける |
参照:完全な使用例については references/common-patterns.md をご覧ください。
エラー処理
# Python
try:
result = app.scrape_url("https://example.com")
except FirecrawlException as e:
print(f"Firecrawl error: {e}")
// TypeScript
try {
const result = await app.scrapeUrl('https://example.com');
} catch (error) {
console.error('Error:', error.message);
}
レート制限とベストプラクティス
| ベストプラクティス | 理由 |
|---|---|
onlyMainContent: true を使用する | クレジットを節約し、より整理された出力を得られます |
適切な limit を設定する | 過剰なコストを避けられます |
最初に map エンドポイントを使用する | クロール戦略を計画できます |
| 結果をキャッシュする | 再スクレイピングを避けられます |
| 抽出の呼び出しをまとめる | 複数の URL をより効率的に処理できます |
クレジット:無料プランは月 500 クレジット、有料プランでは上限が増えます。
Cloudflare Workers との統合
⚠️ SDK は Workers で実行できません(Node.js の依存関係があるため)。REST API を直接使用してください。
const response = await fetch('https://api.firecrawl.dev/v2/scrape', {
method: 'POST',
headers: {
'Authorization': `Bearer ${env.FIRECRAWL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ url, formats: ['markdown'], onlyMainContent: true })
});
参照:キャッシュを含む Workers の完全な使用例については references/common-patterns.md をご覧ください。
このスキルを使用する場合
| ✅ Firecrawl を使用する | ❌ 使用しない |
|---|---|
| 最新の JS レンダリングサイト | シンプルな静的 HTML(cheerio を使用) |
| LLM 向けのクリーンな Markdown | 既存の Puppeteer セットアップが動作する |
| RAG/チャットボットのコンテンツ | 直接利用できる API がある |
| 構造化データの抽出 | 予算の制約がある |
| ボット保護の回避 |
よくある問題
| 問題 | 原因 | 対処法 |
|---|---|---|
| "Invalid API Key" | キーが設定されていない | $FIRECRAWL_API_KEY が fc- で始まることを確認する |
| "Rate limit exceeded" | 月間クレジットを使い切った | ダッシュボードを確認し、プランをアップグレードする |
| "Timeout error" | ページの読み込みが遅い | waitFor: 10000 を追加する |
| "Content is empty" | JS の読み込みが遅い | actions: [{type: "wait", milliseconds: 3000}] を追加する |
高度な機能
| 機能 | 使用方法 |
|---|---|
| ブラウザー操作 | actions: [{type: "click", selector: "button"}] |
| カスタムヘッダー | headers: {"User-Agent": "Custom Bot"} |
| Webhook | webhook: "https://your-domain.com/webhook" |
| スクリーンショット | formats: ["screenshot"] |
参照先:完全な API リファレンスについては、references/endpoints.md を参照してください。
リファレンスを読み込むタイミング
| リファレンス | 読み込むタイミング |
|---|---|
endpoints.md | API エンドポイントの完全なドキュメントが必要な場合 |
common-patterns.md | Cloudflare Workers、キャッシュ、バッチ処理、エラー処理を扱う場合 |
パッケージのバージョン
| パッケージ | バージョン |
|---|---|
| firecrawl-py | 4.5.0+ |
| @mendable/firecrawl-js | 4.32.0+ |
| API | v2 |
注:Node.js SDK には Node.js >=22.0.0 が必要です。Workers では実行できません。
公式ドキュメント:https://docs.firecrawl.dev | GitHub:https://github.com/mendableai/firecrawl
トークン削減率:約60% | 本番環境対応:✅