工作原理

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 后:
  • 针对最新内容,响应速度提升 500%
  • 结果即时返回,无需等待重新抓取

重要说明

  • 默认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,大幅加速你的抓取与爬取!