本地部署 Firecrawl 爬虫让 AI 知识库更丰满
之前在《38.2k 的 AI 开发平台 Dify 教程三:将 Notion 和网站作为知识库》文章中,提到了 Dify 的「同步 Web 站点」功能,这个功能主要是通过今天要介绍的爬虫产品——
Firecrawl

什么是 Firecrawl?
Firecrawl 是一款能把网站内容直接转成 Markdown 格式的爬虫工具。它主要提供 API 服务,不需要站点地图,只需要传入一个 URL,就能爬取该网站及所有可访问的子页面内容。
与传统爬虫相比,
Firecrawl 擅于处理 Ja vaScript 动态生成的网站
功能演示
Scrape
Scrape API 只能抓取单个网页的内容
Crawl
Crawl API 可以抓取整个站点的页面
需要注意的是,
Crawl API 不会直接返回爬取结果,而是返回一个任务 ID
/crawl/{task_id} 这个 API 才能获取实际的爬取数据。
Map
Map API 用来获取网站地图
使用线上产品
可以直接访问 Firecrawl 官网(
https://www.firecrawl.dev/
点击「Start for free(500 credits)」进入演练场,三种功能如上所述,这里不再重复。注册登录后进入个人概览页面,可以看到
API Key 和 7 天爬取日志
在 Usage 页面还能查看积分使用情况。
拿到 API Key 之后,就可以把它集成到 Dify、Langchain、LlamaIndex 等应用中。但要注意,
Firecrawl API 并不是免费的
本地部署
如果不想付费,也可以选择本地部署 Firecrawl。
访问 Firecrawl 的 GitHub(
https://github.com/mendableai/firecrawl
该文件介绍了本地启动 Firecrawl 服务的步骤:
- 拉取源码到本地
- 安装依赖
- 配置
.env文件(用于设置环境变量) - 需要跑三个服务:redis、workers(负责处理爬虫任务)和主服务
三个服务都启动后,访问主服务进行测试(默认端口 3002):
curl -X GET http://localhost:3002/test
如果返回 "Hello, world!" 就说明本地 Firecrawl 启动成功。
不过部署流程依赖一些环境和工具(比如 Node.js、pnpm),每次启动还要跑三个服务,比较繁琐。推荐大家直接用 Docker Compose 进行部署。
项目根目录已经提供了 docker-compose.yaml 文件,只需要在 .env 文件中设置好环境变量,然后直接启动:
docker compose up -d
部署完成后,可以用 Postman 来测试一下:
单页爬取没有问题,再测试一下 crawl 和 map API:
crawl API 返回一个任务 ID,需要用这个 ID 查询最终结果:
爬取结果如下:
OK,完美。有需要的小伙伴可以在本地部署试试看,配合 AI 知识库效果非常不错。