⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/scraper-155k-star-codex/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

我每天都要让 AI 帮我干一件事,联网找资料。盯 GitHub 热榜、翻项目文档、看热门信息,基本都靠它。

但 Codex 自带的联网能力是真的弱。静态 HTML 能读,碰到 JS 渲染的页面直接抓瞎,抓回来一个空壳,它还会一本正经地告诉你这页面没内容。后来我把 Firecrawl 接上,同一个页面就能读了。

先说它解决了什么问题

Firecrawl 是个网页数据 API,开源,2024 年 4 月放出来的。干的事说起来特别简单,丢给它一个网址,它还给你干净的 Markdown、结构化 JSON 或者截图。

价值在于网页是给人看的,不是给 AI 看的。导航栏、广告、页脚、弹窗全塞在 HTML 里,直接喂给模型,一个普通页面能吃掉几万 token,其中大半是垃圾。Firecrawl 只把正文抠出来。

这个项目现在十八万多 Star,进了 GitHub 全站前 100,用的人已经很多了。

firecrawl/firecrawl 仓库首页,Star 185k

官方给的数据是 125 万开发者、15 万家公司接入,SDK 在 npm 和 PyPI 加起来每周下载 250 万次。

项目 README 的标识与徽章区

六个能力,拼在一起是一条流程

它的东西不算多,六个端点,但排在一起正好是从发现到交互的一条线。

找源头用 Search,看全貌用 Map,拿正文用 Scrape,铺整站用 Crawl,想让它自己找就用 Agent,数据藏在点击后面就上 Interact。

Firecrawl 控制台的实际界面

抓和爬,把网页变成干净的 Markdown

Scrape 是最基础的用法,也是调用频率最高的一个。给一个 URL,返回正文 Markdown。JS 渲染的页面它自己会渲染完再抠内容,代理、反爬、等待加载这些都不用你操心。

除了 Markdown,还能要原始 HTML、页面截图、页面元数据。挂个 schema,它直接按字段返回 JSON,比如只要标题和价格。另外,网页上挂着的 PDF 和 DOCX 它也能直接解析,白皮书和财报不用先下载再处理。

Scrape 管一页,Crawl 管一站。给一个起始 URL,它顺着链接把整个站点的页面抓回来。深度、页面数上限、路径过滤这些参数都能配,SDK 会自己轮询任务状态,抓完一次性返回,不用写循环等结果。官方给的 P95 延迟是 3.4 秒,做实时 Agent 的场景也够用。

Map 和 Search,先看清楚再动手

抓之前想知道一个站有多大,先跑 Map。它不抓内容,只把域名下所有已索引的 URL 列出来,秒回。

Map 还能带搜索词。只要一个站点里跟定价相关的页面,加个 search 参数就够,结果按相关度排好返回,写竞品监控脚本的时候省事。

Search 不需要 URL,直接给关键词。它搜完网页,把每条结果的完整页面内容一起带回来。老做法是搜一遍再抓一遍,中间还得自己处理去重,它一步出结果。

Agent 和 Interact,让它自己去点

Agent 连 URL 都不用给。说一句「找一下 Notion 的定价方案」,它自己去搜、去读,返回结果和来源链接。挂 schema 能拿结构化输出,模型有两档,spark-1-mini 便宜 60%,日常够用;spark-1-pro 贵一些,适合跨站点对比、要钻复杂导航的活。

Interact 对付的是藏在点击后面的数据,电商搜索结果、要翻页的列表,普通抓取够不着。它先抓页面,然后你用大白话指挥它,比如「搜一下机械键盘,点第一个结果」。能做的动作有点击、滚动、输入、等待和按键。它会真的去操作页面再返回结果,输出里还带一个实时浏览器画面的链接。

接进 Claude Code 和 Codex,是这篇的重点

这部分才是我写这篇文章的原因。它有官方 MCP 服务器,Cursor、Claude Code、Windsurf 这些 MCP 客户端填几行配置就能用。Claude Code 和 Codex 还有现成的 Skill,一条命令装好。

npx -y firecrawl-cli@latest init --all --browser

装完要重启一下你的 agent 才会生效。官方另外还提供 npx skills add firecrawl/skills 这个技能目录入口,走 MCP 的话则是把下面这段塞进客户端的配置里,填上自己的 FIRECRAWL_API_KEY 就能用。

{
"mcpServers": {
"firecrawl-mcp": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": { "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" }
}
}
}

顺带一提,那个 MCP 服务器是独立仓库维护的,MIT 协议,和主项目分开。

我拿它试了两个活

我用的是 Codex,装完直接试了两条指令。

搜一下最新的 Next.js App Router 更新日志,给我总结一下

Codex 执行搜索指令后的返回

抓取 https://docs.firecrawl.dev 这个页面,列出顶级章节

Codex 执行抓取指令后的返回

两个可能踩的坑提前说。报 spawn npx ENOENT 说明本地没装 Node,装上就行,npm 上这两个包现在都要求 Node 22 以上。实在不想装 Node 也有办法,把配置里的本地命令换成远程地址,一样能用。

谁会真正用得上它

做 RAG 的,拿它把文档站和资料站灌进知识库,比手写爬虫省心太多。

做竞品监控的,定时 Crawl 对手的官网和定价页,字段级 JSON 直接进库。

玩 AI 编程的,给 Claude Code 或者 Codex 接上,AI 就有了靠谱的眼睛,不再靠训练数据里的旧信息瞎猜,我属于这一类。另外 n8n、Zapier、Lovable 这些平台也有现成集成,不写代码也能接。

三件事得说清楚

第一是覆盖率。官方口径是 96%,基准是一千条 URL 的测试集,剩下那部分大多是防护最严的站,抓不动就是抓不动,别指望它万能。

第二是协议。核心是 AGPL-3.0,不过 SDK 和部分 UI 组件是 MIT,云版另有额外功能,想自己搭的话官方有独立的自建指南。商用场景先把这几条读明白。

第三是合规。它默认遵守 robots.txt,但守规矩的责任在用的人,拿它抓什么、怎么用,自己掂量。

我的判断是这个项目火得有道理。抓取是脏活,反爬、代理、JS 渲染,自己搞一套要脱层皮,搞完还得天天维护;它把这些打包成一个 API,输出还直接贴合了 AI 的胃口。网页数据这层基础设施,做 AI 应用的绕不开,它目前是这个位置里最能打的开源选手。

仓库地址是 https://github.com/firecrawl/firecrawl

文章目录
  1. 1. 先说它解决了什么问题
  2. 2. 六个能力,拼在一起是一条流程
  3. 3. 抓和爬,把网页变成干净的 Markdown
  4. 4. Map 和 Search,先看清楚再动手
  5. 5. Agent 和 Interact,让它自己去点
  6. 6. 接进 Claude Code 和 Codex,是这篇的重点
  7. 7. 我拿它试了两个活
  8. 8. 谁会真正用得上它
  9. 9. 三件事得说清楚