系统 Chrome + CDP 网页抓取引擎
完整 SPA 渲染、框架检测、深度爬取、批量下载合并、OpenAPI 提取。复用系统 Chrome,零浏览器下载,仅 55KB npm 依赖。read_url_content 的完美替代方案。
FEATURES
基于系统 Chrome + CDP 协议,完整执行 JavaScript。React、Vue、Angular 页面内容零遗漏。
自动识别 Docusaurus、VuePress、VitePress、GitBook、Next.js、Nuxt.js 等主流框架。
从入口页自动发现所有链接,递归爬取整站。可视化 sitemap 目录树。
批量抓取多页面,合并为单个 Markdown 文件。支持 URL 列表文件输入。
从 Swagger UI / Redoc 页面自动发现 spec URL,转换为结构化 Markdown。
仅 55KB npm 依赖(turndown),复用系统已安装的 Chrome,零浏览器下载。
REFERENCE
站点结构分析、框架检测、链接提取
| 命令 | 说明 | 示例 |
|---|---|---|
discover | 完整站点分析 | ./scrape discover https://docs.example.com |
--framework-only | 仅检测框架 | ./scrape discover https://docusaurus.io --framework-only |
--deep | 深度爬取 | ./scrape discover https://docs.example.com --deep --max-pages 100 |
--sitemap | 目录树 | ./scrape discover https://docs.example.com --sitemap |
--links-only | 仅列出链接 | ./scrape discover https://docs.example.com --links-only |
页面抓取与 Markdown 转换
| 命令 | 说明 | 示例 |
|---|---|---|
fetch | 单页抓取 | ./scrape fetch https://open.feishu.cn/... |
--auto | 自动发现+抓取 | ./scrape fetch https://docs.example.com --auto -o docs/ |
--merge | 合并为单文件 | ./scrape fetch https://docs.example.com --auto --merge -o all.md |
--from-file | 从 URL 列表抓取 | ./scrape fetch --from-file urls.txt -o docs/ |
--summary-only | 仅显示摘要 | ./scrape fetch https://example.com --summary-only |
OpenAPI/Swagger 规范提取与转换
| 命令 | 说明 | 示例 |
|---|---|---|
openapi | 提取 API 文档 | ./scrape openapi https://petstore.swagger.io/v2/swagger.json -o api.md |
openapi (UI) | 从 Swagger UI 发现 | ./scrape openapi https://api.example.com/swagger-ui/ -o api.md |
Agent 内置的 read_url_content 适用于简单静态页面,但在以下场景完全失败:
当 read_url_content 返回空白或残缺内容时,这是 SPA 页面的强信号 — 此时应切换到本技能。
Agent 尝试 read_url_content 失败后,自动切换到本技能:
./scrape fetch https://open.feishu.cn/document/server-docs/im-v1/message/create输出完整的 Markdown 文档,包含 API 参数、请求示例、响应说明。
"把这个文档站的所有页面下载下来,合成一个文件":
./scrape fetch https://docs.example.com --auto --merge -o /tmp/docs/all.md自动发现所有导航链接,逐页抓取并合并为单个 Markdown。
"看看这个网站用了什么框架":
./scrape discover https://docusaurus.io/docs --framework-only
# → Framework: Docusaurus (detected via meta)./scrape discover https://cn.vuejs.org --deep --max-pages 100 --sitemap递归爬取所有链接,输出可视化目录树。
从 Swagger UI 页面自动发现 spec URL 并转换:
./scrape openapi https://petstore.swagger.io -o /tmp/api.md首次运行时自动安装 npm 依赖(仅 turndown,~55KB)。
web-scraper/
├── scrape ← Bash CLI 入口
├── SKILL.md ← Agent 指令文件
└── scripts/
├── cdp_client.mjs ← 零依赖 CDP 客户端 (WebSocket → Chrome)
├── md_converter.mjs ← HTML→Markdown (Turndown + GFM)
├── fetch.mjs ← fetch 命令(单页/批量/自动发现)
├── discover.mjs ← discover 命令(分析/爬取/sitemap)
└── openapi.mjs ← openapi 命令(spec 提取+转换)INSTALL