
做 AI 应用或者数据分析,最头疼的就是数据来源。Firecrawl 是一个能把整个网站变成结构化 Markdown 数据的开源 API——把你的 AI 模型接上网,就等于装了一个"搜索引擎"。
什么场景下需要用?
场景 1:做 RAG 应用,需要从特定网站提取内容
如果你在用 LangChain 或 LlamaIndex 做 RAG(检索增强生成),最大的难题之一就是怎么把网站内容变成 AI 可读的格式。传统做法是写一堆爬虫代码,处理各种反爬机制,还要手动转换成 Markdown。
Firecrawl 把这一切抽象成一句 API 调用。你给它一个 URL,它返回干净的结构化内容——自动处理 JavaScript 渲染、反爬、分页、格式转换。从网页到知识库,两步搞定。
场景 2:监控竞品网站,自动抓取更新
做市场分析或者价格监控的人最清楚——定期去几十个网站上复制粘贴数据是一件多么枯燥的事情。而且很多网站现在都是用 JavaScript 渲染的内容,普通 curl 根本拿不到。
Firecrawl 内置了浏览器引擎,可以完整渲染网页(包括 SPA 应用)。你只需要设置好定时任务,它会自动把更新过的数据推送给你。
场景 3:给 AI Agent 装上网关能力
这是 Firecrawl 最近最火的使用方式——通过 MCP 协议,让你的 AI 编程助手直接具备全网搜索和抓取能力。你在 Claude Code 里问"帮我查一下最近的 AI 新闻",Agent 自动调 Firecrawl 去搜索、抓取、整理,最后给你一个完整的报告。
怎么用?
安装
Firecrawl 提供了两种使用方式。最简单的用云服务:
# 用 npm 安装 SDKnpm install @firecrawl/sdk# 或直接用 Pythonpip install firecrawl-py# 获取 API Key 后即可使用如果你想自己部署(数据安全考虑):
# Docker 部署git clone https://github.com/firecrawl/firecrawl.gitcd firecrawldocker compose up -d快速开始
Firecrawl 的核心 API 非常简单,三个主要操作:
from firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="your-key")# 1. 抓取单个页面result = app.scrape_url("https://example.com")print(result["content"]) # 返回干净的 Markdown# 2. 爬取整个网站crawl = app.crawl_url("https://docs.example.com", params={"limit": 100})print(f"爬取了 {crawl['pages_count']} 个页面")# 3. 搜索并抓取search = app.search("AI Agent 最新进展", params={"scrape_options": {"formats": ["markdown"]}})进阶用法
Firecrawl 的真正实力在于它跟 AI 工作流的深度集成:
# MCP 配置(让 Claude Code 直接使用)# 在 MCP 配置中添加:firecrawl: command: "npx" args: ["-y", "@firecrawl/mcp"]# 之后在 Claude Code 中可以直接说:# "帮我看看 example.com 的产品页面有什么更新"# "搜索最新的 Python 3.12 特性并总结"高级配置选项:
# 自定义反爬策略result = app.scrape_url("https://example.com", params={ "formats": ["markdown", "screenshot"], # 同时抓取内容和截图 "onlyMainContent": True, # 只保留正文 "waitFor": 2000, # 等待 JS 渲染 "removeTags": ["nav", "footer", "aside"] # 移除无关元素})注意事项
• 自部署版本需要 Docker 和足够的内存(建议 4GB+) • 大规模爬取时要注意目标网站的 robots.txt 和使用条款 • 云服务免费版有调用次数限制,自部署无限制 • 支持几乎所有现代网站的 JavaScript 渲染抓取
总结
如果你的应用需要从网页获取数据——无论是做 AI 训练数据集、市场分析、还是给 RAG 系统补充知识——Firecrawl 是目前最省心的解决方案。一行 API 代替几十行爬虫代码,还不用处理反爬问题。
夜雨聆风