メインコンテンツへスキップ
重要: 認証付きスクレイピングは、あなた自身とプラットフォーム所有者の双方から明示的な許可を得ているシステムでのみ使用してください(例: 内部の自己ホスト型ツールや、あなたが完全に管理しているリソース)。サイトの利用規約に準拠していると確信できないプラットフォームでは認証を使用しないでください。判断に迷う場合は書面で許可を取得してください。セッション Cookie の不適切な使用は、利用規約や法令に違反する可能性があります。常に、この方法で保護されたコンテンツにアクセスする権限があることを確認してください。

概要

認証が必要なスクレイピングの推奨手法は、クッキーベースの認証です。流れは次のとおりです:
  1. アプリケーションに手動でログインする
  2. DevTools からセッション Cookie を取得する
  3. Firecrawl にその Cookie を渡して、保護されたページへアクセスする
Cookie の有効期限:
  • 社内ツール: 多くの場合 7~30 日、またはそれ以上
  • その他のツール: 多くの場合 数時間または数分
社内ツールは一般に Cookie の有効期間が長いため、この方法は定期的なスクレイピングに最適です。

セットアップ

1

API キーを取得

firecrawl.dev/app で Firecrawl の API キーを取得します
2

依存関係をインストール

npm
npm install @mendable/firecrawl-js
Node.js < v20: Node.js v19 以前を使用している場合は、dotenv もインストールしてください:
npm install dotenv
そのうえで、ファイルの先頭に import 'dotenv/config' を追加してください。
3

環境を設定

.env ファイルを作成します:
.env
FIRECRAWL_API_KEY=your_firecrawl_api_key

デモアプリケーション: デモアプリは https://firecrawl-auth.vercel.app で試せます
  • Email: test@example.com
  • Password: password123
1

アプリにログインする

https://firecrawl-auth.vercel.app にアクセスし、上記の認証情報でログインします
2

DevTools を開く

F12 を押すか、右クリック → 「検証」を選択します
3

Application タブに移動する

Application タブ(Chrome)または Storage タブ(Firefox)をクリックします
4

Cookie を探してコピーする

  1. サイドバーの Cookies を展開する
  2. 対象のドメインをクリックする
  3. auth-token Cookie を見つける
  4. Value をダブルクリックしてコピーする
DevTools の Cookie ビュー
デモアプリの場合、Cookie は次のようになります:
auth-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJleGFtcGxlLXVzZXItaWQiLCJlbWFpbCI6InRlc3RAZXhhbXBsZS5jb20ifQ.example-signature-hash
重要: Cookie は機密性の高い認証情報です。公開したり、バージョン管理にコミットしたりしないでください。パスワード同様に扱ってください。

ステップ2:Firecrawl でクッキーを使用する

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

const app = new FirecrawlApp({
  apiKey: process.env.FIRECRAWL_API_KEY
});

const result = await app.scrape("https://firecrawl-auth.vercel.app/dashboard", {
  formats: ["markdown", "screenshot"],
  headers: {
    Cookie: 'auth-token=COOKIE_GOES_HERE'
  },
  waitFor: 3000 // ページ読み込みを3秒待機
});

console.log("=== Markdown ===\n" + result.markdown + "\n\n=== スクリーンショットURL ===\n" + result.screenshot);

ベストプラクティス

Cookie Security

  • Cookieは環境変数に保存する
  • Cookieをgitにコミットしない
  • Cookieを定期的にローテーションする
  • .envファイルを.gitignoreに含める

Cookie Expiration

  • DevToolsで有効期限を確認する
  • 期限切れ前にアラートを設定する
  • 期限が切れたらCookieを再取得する
  • 短期のCookieにはフォームベース認証の利用を検討する

Rate Limiting

  • アプリケーションのレート制限を遵守する
  • リクエスト間に遅延を入れる
  • 429(Too Many Requests)エラーを監視する
  • リトライには指数バックオフを使用する

Error Handling

  • 401/403エラー(Cookieの期限切れ)を確認する
  • レスポンス内容を検証する
  • 認証失敗をログに記録する
  • フォールバックの認証手段を用意する

トラブルシューティング

考えられる原因:
  • Cookie の有効期限が切れている
  • Cookie を正しくコピーできていない
  • アプリケーションに追加のヘッダーが必要
  • サーバー側でセッションが無効化された
解決策:
  • 新規ログイン後に DevTools から Cookie を再取得する
  • 複数の Cookie(session + CSRF token)が必要か確認する
  • Cookie のドメインが対象の URL と一致しているか確認する
短期間で切れるセッションの場合:
  • 代わりにフォームベース認証を使う
  • アクションでログイン処理を自動化する
  • Cookie を更新する cron ジョブを設定する
  • 内部ツールの管理者に長めのセッション時間を依頼することを検討する
内部ツールの Cookie の有効期限: 多くの内部ツールは 7〜30 日の有効期限で Cookie を設定しており、定期的なスクレイピングに適しています。DevTools の Expires フィールドで Cookie の有効期間を確認してください。