给RAG系统喂网页数据不用自己写爬虫:Firecrawl用12种引擎并发抓取,输出干净Markdown直接进AI工作流
做 AI 应用的人基本都会遇到同一个问题:模型训练数据有截止时间,而现实世界每天都在变化。为了让 Agent 获取最新网页数据,一般只能自己搭爬虫或买网页数据 API——前者要解决 JavaScript 渲染、反爬机制、代理池、数据清洗等问题,后者成本高且返回的数据不能直接用于大语言模型。
Firecrawl 把这件事做成了一个标准能力。它把任意网页转换成干净的 Markdown 或结构化 JSON,并通过一个 API 直接交给 AI 使用。在 GitHub 上有 14.9 万颗星。
它解决的不是网页抓取本身,而是让网页数据能够直接进入 AI 工作流。
典型使用场景
给 RAG 系统加上网页数据。 比如用户问"西门子最新推出的产品是什么",模型训练时不知道但官网已经更新了。以前要重新写爬虫、解析网页、清洗数据再导入向量数据库,现在只要抓取官网页面就能得到干净的 Markdown,直接添加到知识库。
批量提取商品、新闻等结构化数据。 传统做法是为每个网站分别编写 CSS 选择器、XPath 或正则表达式,网站一变就要重新维护。Firecrawl 可以直接定义 JSON Schema,比如商品名称、价格、评分、库存等字段,返回的就是标准 JSON 格式。不管网页用什么布局,也不用研究 DOM 结构,只要告诉它最后要获取什么数据。
AI 自己去网上找答案。 以前必须事先准备好目标网址,现在只要让 AI 说"整理出 OpenAI 最新的模型价格",它会自动去搜索网页、进入网站、浏览页面然后提取结果,整个过程就是一个真正能上网的 Agent。
核心技术
抓取层:12 种引擎并发竞速。 内置 Playwright、Puppeteer、Chrome CDP 等 12 种抓取引擎,并发启动后自动选择最快速、最稳定的结果,同时实现 JavaScript 渲染、代理轮换和反爬处理。开发者只需要写 app.scrape("https://example.com"),浏览器启动、页面加载、正文提取全部自动化。
输出层:LLM 就绪格式,准确率 96%。 支持 Markdown、HTML、JSON、截图等格式输出,得到的就是已经清洗好的正文。可以定义 JSON Schema,Firecrawl 会自动理解页面语义并输出结构化数据。question 和 highlights 两种模式只返回核心内容,比整页抓取最多节省 100 倍的 Token 消耗。
代理层:从知道网址到知道目标。 开发者不需要提前准备 URL,只需要说明要达到的目的,比如"找到 Notion 最新的价格"。FIRE-1 Web Action Agent 内置自动搜索、点击、填表单以及提取结果的功能。底层的 PDF 解析、链接提取等模块用到了 Rust NAPI,速度提升 3-5 倍。
安装与使用
Python 用户:
pip install firecrawl-py
网页正文抓取:
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="your-api-key")
result = app.scrape_url("https://example.com")
print(result["markdown"])
输出就是干净的 Markdown,可以直接写入向量数据库或知识库。
用 Agent 获取需要的信息:
result = app.extract(
[
"https://openai.com",
"https://openai.com/pricing"
],
{
"prompt": "Extract pricing information for GPT-4 models"
}
)
也可以用 skill 的方式使用,打开 Claude Code 后执行:
npx -y firecrawl-cli@latest init --all --browser
注意事项
Firecrawl 不能抓取需要登录的付费内容,并且会遵守 robots.txt。如果你在做 RAG、AI Agent 或企业知识库,可以试一试这个项目。
项目基于 AGPL-3.0 协议开放。
开源地址:https://github.com/firecrawl/firecrawl