写在前面
最近在学 AgentScope Java 框架,想把官方文档喂给 LLM 做辅助教学——遇到问题直接问,比翻文档快。但要先把文档抓下来转成 Markdown,才能塞进 prompt 或向量库。
试了下
curl,返回一堆 CSS/JS 链接、SVG 图标、导航元素,正文混在里面很难提取。Playwright 能搞,但为了抓几十个页面维护无头浏览器,杀鸡用牛刀。
之前听说过 Firecrawl,给 AI 场景做的网页抓取 API,一直没空折腾。这次试了试,效果不错,记录一下。
它能干嘛
你给它 URL,它还你干净的 Markdown。
JS 渲染、反爬绕过、广告过滤、正文提取这些破事它都包了。只想拿内容喂 LLM 的话,省不少事。
注册和配置
去 firecrawl.dev 注册,Dashboard 里拿 API Key。免费版 500 积分,1 积分抓 1 页,不要钱不绑卡。
拿到 Key 配个环境变量:
# zsh 用户
echo 'export FIRECRAWL_API_KEY="fc-xxx"' >> ~/.zshrc
source ~/.zshrc
基本用法
抓单页
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://java.agentscope.io/zh/intro.html", "formats": ["markdown"]}'
返回 JSON 里 data.markdown 就是正文,标题、段落、代码块都在,直接能用。
批量抓站
抓整个文档站用 /crawl:
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://docs.xxx.com", "limit": 50}'
异步接口,返回任务 ID,过会儿再查结果。limit
控制抓多少页,别一下把积分造完了。
先探探路
不知道一个站有多少页?用 /map 先看看:
curl -X POST https://api.firecrawl.dev/v1/map \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
返回站点能发现的所有 URL,不消耗积分。我一般先 map,看看哪些页面值得抓,再针对性地 scrape。
实际效果
拿 AgentScope Java 文档页对比:
直接 curl:
<!doctype html>
<html class="no-js" lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css" />
<!-- 一堆 CSS/JS 链接、SVG 图标、导航元素... -->
</head>
</html>
用 Firecrawl:
# AgentScope Java
**用 Java 构建生产级 AI 智能体**
## 什么是 AgentScope Java?
AgentScope
Java 是一个面向智能体的编程框架,用于构建 LLM 驱动的应用程序。它提供了创建智能体所需的一切:ReAct 推理、工具调用、内存管理、多智能体协作等。
## 核心亮点
### 智能体自主,全程可控
AgentScope 采用 ReAct(推理-行动)范式,使智能体能够自主规划和执行复杂任务...
差距明显。
定价
免费版 500 积分/月,个人学习够了。
量大的话,Hobby 版 $16/月 3000 积分,Standard $83/月 10 万积分。先白嫖试试再说。
几个坑
抓不到内容:有些站反爬凶,试试把 timeout
调大。还不行就只能上 Playwright 了。
积分消耗快:别动不动 crawl 整站,先 map 看结构,挑重要的抓。
格式不理想:个别站 HTML 结构太奇葩,提取出来有点乱,只能自己后处理。
最后
Firecrawl 解决的问题很简单:省得为了抓几个网页去折腾爬虫。搞 RAG、搞 AI Agent 需要喂数据,挺实用。
免费版先玩着,后面想结合 n8n 搞个自动化,定期抓技术博客更新,喂 LLM 做摘要存 Obsidian。折腾出来再写一篇。
相关链接
- Firecrawl 文档
- 定价页面
- GitHub 仓库(可以自己部署)