文章目录
- 一、Firecrawl 概述与核心价值
- 1.1 什么是 Firecrawl
- 1.2 为什么选择 Firecrawl
- 业界领先的可靠性
- 极速响应
- AI 就绪的输出格式
- 全面的复杂度管理
- AI Agent 原生支持
- 媒体解析能力
- 1.3 核心功能一览
- 1.4 技术特性对比
- 1.5 应用场景
- AI/LLM 应用开发
- 企业数据工程
- 内容管理与迁移
- 研究与分析
- 二、环境准备与快速开始
- 2.1 获取 API 密钥
- 方式一:云服务注册(推荐新手)
- 方式二:自托管部署
- 2.2 Python SDK 安装与配置
- 2.3 Node.js SDK 安装与配置
- 2.4 其他语言 SDK
- Go SDK 示例
- Java SDK 示例
- Rust SDK 示例
- 2.5 CLI 命令行工具
- 2.6 Playground 在线测试
- 三、Scrape(抓取)—— 网页内容提取的核心
- 3.1 Scrape 基础用法
- 3.2 输出格式详解
- Screenshot 截图选项
- Query 问答格式
- 3.3 高级 Scrape 配置选项
- onlyMainContent 详解
- 3.4 Scrape 实战案例集
- 案例1:抓取新闻文章
- 案例2:抓取电商产品
- 案例3:带重试机制的健壮抓取
- 3.5 错误处理与最佳实践
- 四、Search(搜索)—— 网络搜索与内容获取
- 4.1 Search 基础用法
- 4.2 Search 参数详解
- 4.3 Search 实战案例
- 竞品情报收集
- 五、Crawl(爬取)—— 全站数据采集
- 5.1 Crawl 基础用法
- 5.2 Crawl 配置参数完整参考
- 5.3 Crawl 进度监控与状态查询
- 5.4 Crawl 大型网站策略
- 策略1:分批次爬取
- 策略2:增量爬取
- 5.5 Crawl 实战案例:构建文档知识库
- 六、Map(映射)—— 网站 URL 发现
- 6.1 Map 基础用法
- 6.2 Map with Search 功能
- 6.3 Map 高级配置
- Map + Crawl 组合使用
- 七、Extract(提取)—— LLM 驱动的结构化数据提取
- 7.1 Extract 基础概念
- 7.2 使用 Schema 进行结构化提取
- 7.3 使用 Prompt 进行自然语言提取
- 7.4 Extract 无 URL 模式
- 7.5 Extract 与 Web Search 结合
- 7.6 FIRE-1 Agent 增强
- 7.7 Extract 任务状态查询
- 7.8 Extract 已知限制(Beta)
- 八、Agent(智能代理)—— 自主数据收集
- 8.1 Agent 概述
- 8.2 Agent 基础用法
- 8.3 Agent 结构化输出
- 8.4 Agent 模型选择
- 8.5 Agent 高级应用场景
- 九、Interact(交互)—— 页面操作与动态提取
- 9.1 Interact 概念
- 9.2 Interact 工作流程
- 9.3 Interact 实战案例
- 电商搜索与提取
- 十、Batch Scrape(批量抓取)
- 10.1 Batch Scrape 基础
- 10.2 Batch Scrape 最佳实践
- 分批处理大量 URL
- 十一、MCP Server 集成
- 11.1 MCP 概述
- 11.2 安装与配置
- 11.3 各平台集成指南
- Claude Desktop
- Cursor IDE (v0.48.6+)
- Claude Code (CLI)
- 11.4 MCP 可用工具列表
- 11.5 MCP 配置选项
- 十二、自托管部署(Self-Hosting)
- 12.1 Docker 部署方案(推荐)
- 12.2 环境变量配置详解
- 12.3 docker-compose.yaml 核心结构
- 12.4 生产环境部署建议
- Nginx 反向代理配置
- 十三、架构设计与技术原理
- 13.1 整体架构概览
- 13.2 核心组件解析
- API 服务 (apps/api)
- Playwright 微服务 (playwright-service)
- 队列系统 (BullMQ + Redis)
- 缓存层 (Redis)
- 13.3 数据流分析(以 Scrape 请求为例)
- 13.4 队列系统与任务调度
- 13.5 Playwright 微服务反检测措施
- 十四、SDK 深度解析
- 14.1 Python SDK 完整参考
- 14.2 Node.js SDK 完整参考
- 14.3 Go SDK 参考
- 14.4 Java SDK 参考
- 14.5 Rust SDK 参考
- 十五、API 参考手册
- 15.1 认证机制
- 15.2 通用响应格式
- 15.3 错误代码参考
- 15.4 速率限制
- 15.5 计费体系
- 十六、企业级应用与集成方案
- 16.1 LangChain 集成
- RAG 管道集成
- 16.2 Dify 平台集成
- 16.3 Zapier/n8n 自动化
- 16.4 RAG 知识库构建
- 16.5 数据管道构建(ETL)
- 十七、性能优化与最佳实践
- 17.1 性能调优策略
- 减少 Token 消耗
- 并发控制
- 缓存策略
- 17.2 成本优化建议
- 17.3 安全最佳实践
- 输入验证(防止 SSRF)
- 17.4 监控与日志
- 十八、常见问题与故障排除
- Q1: 如何解决 401 Unauthorized 错误?
- Q2: 如何处理 429 Rate Limited?
- Q3: 为什么抓取的内容为空?
- Q4: 如何提高爬取速度?
- Q5: 自托管部署常见问题
- 十九、实战项目 —— 从零构建完整应用
- 19.1 项目一:智能竞品监控系统
- 19.2 项目二:AI 知识库构建系统
- 19.3 项目三:内容聚合平台后端
- 二十、高级主题
- 20.1 Webhook 与事件驱动架构
- 20.2 流式响应处理
- 20.3 自定义 LLM 后端
- 20.4 多租户隔离部署
- 20.5 性能基准测试框架
- 二十一、Firecrawl 核心原理深度剖析
- 21.1 HTTP 协议与网页请求模型
- 21.2 HTML DOM 解析与内容提取
- 主要内容区域识别(Main Content Extraction)
- HTML 到 Markdown 的转换规则
- 21.3 JavaScript 渲染与 Playwright 集成
- 总结
一、Firecrawl 概述与核心价值
1.1 什么是 Firecrawl
Firecrawl是一个用于大规模网页搜索、抓取和交互的开源 API 服务。它能够将任意网站转换为干净的 Markdown 格式或结构化的 JSON 数据,特别适合为 AI/大语言模型(LLM)应用程序提供高质量的数据输入。
根据 GitHub 仓库 README 的官方定义:
“Firecrawl 是用于大规模搜索、抓取和与网页交互的 API。提供网页上下文 API,帮助您发现来源、提取内容并将其转换为干净的 Markdown 或结构化数据,供代理使用。”
1.2 为什么选择 Firecrawl
业界领先的可靠性
- 96% 的网页覆盖率:包括 JavaScript 密集型页面
- 无需手动处理代理服务头
- 直接获取干净数据
- 内置基准测试验证
极速响应
- P95 延迟仅 3.4 秒
- 适用于实时代理和动态应用场景
- 支持异步任务处理大规模请求