仕組み

Firecrawl は過去にスクレイプしたページをキャッシュし、デフォルトでは利用可能な場合に新しいコピーを返します。
  • デフォルトの鮮度: maxAge = 172800000 ms(2日)。キャッシュのコピーがこの期間内に更新されていれば即時に返し、そうでなければ Firecrawl が新規にスクレイプしてキャッシュを更新します。
  • 常に最新を取得: 常にスクレイプするには maxAge: 0 を設定します。
  • キャッシュを保存しない: リクエスト結果を保存したくない場合は storeInCache: false を設定します。
絶対に最新である必要がない場合、結果を最大 500% 高速に取得できます。鮮度は maxAge で制御します:
  1. ページの新しいバージョンがある場合は即時に返す
  2. 指定した期間より古い場合にのみ新規にスクレイプ
  3. 時間を節約 — 結果が秒ではなくミリ秒で返る

これを使うべきタイミング

適している用途:
  • ドキュメント、記事、製品ページ
  • バッチ処理ジョブ
  • 開発・テスト
  • ナレッジベースの構築
見送るべき用途:
  • リアルタイムデータ(株価、ライブスコア、速報)
  • 更新頻度の高いコンテンツ
  • 時間にシビアなアプリケーション

使い方

スクレイプリクエストに maxAge(ミリ秒)を追加します(例:3600000 は 1 時間)。
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

# Use cached data if it's less than 1 hour old (3600000 ms)
# This can be 500% faster than a fresh scrape!
scrape_result = firecrawl.scrape(
    'https://firecrawl.dev', 
    formats=['markdown'],
    maxAge=3600000  # 1 hour in milliseconds
)

print(scrape_result['markdown'])

よく使われる maxAge の値

参考になる目安は次のとおりです:
  • 5分: 300000 - 半動的なコンテンツ向け
  • 1時間: 3600000 - 毎時更新されるコンテンツ向け
  • 1日: 86400000 - 日次更新のコンテンツ向け
  • 1週間: 604800000 - 比較的静的なコンテンツ向け

パフォーマンスへの影響

maxAge が有効な場合:
  • 直近のコンテンツで応答が最大5倍高速
  • 新規スクレイプを待たずに結果を即時に返す

重要な注意事項

  • デフォルト: maxAge172800000(2日)
  • 必要時に最新化: データが maxAge より古い場合は、自動で新しくスクレイピングします
  • 古いデータなし: 指定した maxAge より古いデータは返されません

より高速なクロール

複数ページのクロールでも同じ速度向上の効果があります。最近取得したページのキャッシュ結果を返すには、scrapeOptions 内で maxAge を使用してください。
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

# キャッシュを活用したスクレイピングによるクロール — 最近取得済みのページは最大5倍高速
crawl_result = firecrawl.crawl(
    'https://firecrawl.dev', 
    limit=100,
    scrape_options={
        formats=['markdown'],
        maxAge=3600000  # 1時間以内のデータがあればキャッシュを使用
    }
)

for page in crawl_result['data']:
    print(f"URL: {page['metadata']['sourceURL']}")
    print(f"Content: {page['markdown'][:200]}...")
maxAge を指定してクロールすると、対象ページに最近のキャッシュデータがある場合、クロール中の各ページで最大500%の速度向上が見込めます。 今日から maxAge を活用して、スクレイプとクロールを劇的に高速化しましょう!