Home
Login

将整个网站转换为LLM就绪的Markdown或结构化数据,通过单个API进行抓取、爬取和提取

AGPL-3.0TypeScript 40.4kmendableaifirecrawl Last Updated: 2025-06-22

Firecrawl 项目详细介绍

项目概述

Firecrawl 是一个API服务,接收URL,爬取它,并将其转换为干净的markdown或结构化数据。它爬取所有可访问的子页面,为每个页面提供干净的数据。无需站点地图。

核心功能

1. 网页抓取 (Scraping)

  • 抓取单个URL并获取LLM就绪格式的内容
  • 支持多种输出格式:markdown、结构化数据、截图、HTML
  • 通过LLM提取获得结构化数据

2. 网站爬取 (Crawling)

  • 爬取网页的所有URL并返回LLM就绪格式的内容
  • 无需站点地图即可发现所有可访问的子页面
  • 支持自定义爬取深度和排除规则

3. 网站映射 (Map)

  • 输入网站获取所有网站URL - 极快的速度
  • 支持搜索特定URL模式

4. 网络搜索 (Search)

  • 搜索网络并从结果中获取完整内容
  • 可自定义搜索参数(语言、国家等)
  • 可选择从搜索结果中检索各种格式的内容

5. 数据提取 (Extract)

  • 使用AI从单页面、多页面或整个网站获取结构化数据
  • 支持通过提示词和JSON模式定义提取规则
  • 支持通配符URL模式

6. 批量处理 (Batching)

  • 同时抓取数千个URL的新异步端点
  • 提交批量抓取作业并返回作业ID检查状态

技术特性

LLM就绪格式

  • Markdown: 干净的文档格式
  • 结构化数据: JSON格式的提取数据
  • 截图: 页面视觉捕获
  • HTML: 原始HTML内容
  • 链接和元数据: 页面信息提取

处理复杂情况

  • 代理和反机器人机制: 绕过访问限制
  • 动态内容: 处理JavaScript渲染的内容
  • 输出解析: 智能内容解析
  • 编排: 复杂流程管理

自定义能力

  • 排除标签: 过滤不需要的内容
  • 认证爬取: 使用自定义标头爬取需要认证的内容
  • 最大爬取深度: 控制爬取范围
  • 媒体解析: 支持PDF、DOCX、图像

交互功能 (Actions)

在抓取内容之前可以执行各种操作:

  • 点击: 点击页面元素
  • 滚动: 页面滚动操作
  • 输入: 文本输入
  • 等待: 等待页面加载
  • 按键: 键盘操作

API使用示例

爬取网站

curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
  "url": "https://docs.firecrawl.dev",
  "limit": 10,
  "scrapeOptions": {
    "formats": ["markdown", "html"]
  }
}'

抓取单页面

curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
  "url": "https://docs.firecrawl.dev",
  "formats" : ["markdown", "html"]
}'

结构化数据提取

curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
  "url": "https://www.mendable.ai/",
  "formats": ["json"],
  "jsonOptions": {
    "schema": {
      "type": "object",
      "properties": {
        "company_mission": {"type": "string"},
        "supports_sso": {"type": "boolean"},
        "is_open_source": {"type": "boolean"},
        "is_in_yc": {"type": "boolean"}
      },
      "required": ["company_mission", "supports_sso", "is_open_source", "is_in_yc"]
    }
  }
}'

SDK支持

Python SDK

pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions

app = FirecrawlApp(api_key="fc-YOUR_API_KEY")

# 抓取网站
scrape_status = app.scrape_url(
    'https://firecrawl.dev',
    formats=["markdown", "html"]
)
print(scrape_status)

# 爬取网站
crawl_status = app.crawl_url(
    'https://firecrawl.dev',
    limit=100,
    scrape_options=ScrapeOptions(formats=["markdown", "html"]),
    poll_interval=30
)
print(crawl_status)

Node.js SDK

npm install @mendable/firecrawl-js
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';

const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});

// 抓取网站
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
  formats: ['markdown', 'html'],
});

if (scrapeResponse) {
  console.log(scrapeResponse)
}

// 爬取网站
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
  limit: 100,
  scrapeOptions: {
    formats: ['markdown', 'html'],
  }
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;

集成支持

LLM框架集成

  • Langchain: Python和JavaScript版本
  • Llama Index: 数据连接器
  • Crew.ai: AI代理框架
  • Composio: 工具集成
  • PraisonAI: AI编排
  • Superinterface: 助手功能
  • Vectorize: 向量化集成

低代码框架

  • Dify: AI应用构建平台
  • Langflow: 可视化AI流程
  • Flowise AI: 无代码AI构建
  • Cargo: 数据集成
  • Pipedream: 工作流自动化

其他集成

  • Zapier: 自动化工作流
  • Pabbly Connect: 应用集成

许可证和部署

开源许可

  • 主要采用 GNU Affero General Public License v3.0 (AGPL-3.0)
  • SDK和部分UI组件采用MIT许可证

托管服务

  • 提供托管版本在 firecrawl.dev
  • 云解决方案提供额外功能和企业级支持

自托管

  • 支持本地部署
  • 当前仍在开发中,集成自定义模块到单体仓库
  • 可以本地运行,但尚未完全准备好用于自托管部署

应用场景

  1. AI数据准备: 为LLM提供干净的训练数据
  2. 内容聚合: 从多个网站收集和整理内容
  3. 竞争分析: 监控竞争对手网站变化
  4. SEO研究: 分析网站结构和内容
  5. 数据挖掘: 从网站提取结构化信息
  6. 文档生成: 将网站内容转换为文档格式

使用注意事项

用户在使用Firecrawl进行抓取、搜索和爬取时,有责任遵守网站的政策。建议用户在启动任何抓取活动之前,遵守适用网站的隐私政策和使用条款。默认情况下,Firecrawl在爬取时会遵守网站robots.txt文件中指定的指令。

项目状态

该项目目前处于活跃开发状态,团队正在将自定义模块集成到单体仓库中。虽然尚未完全准备好进行自托管部署,但可以本地运行进行开发和测试。项目拥有活跃的社区和持续的更新,是网页数据提取领域的领先解决方案。

Star History Chart