# 网页数据导出包使用说明 本压缩包包含从网页提取的完整数据,用于 AI 辅助页面还原和设计分析。 ## 📦 文件结构 ``` ├── README.md # 本说明文件 ├── screenshot.png # 完整页面截图(系统 API 截取) ├── domlist.json # DOM 结构数据(TOON 格式) ├── stylePool.json # 样式池数据(TOON 格式) ├── theme.json # 设计令牌(可选) ├── content.md # 页面内容 Markdown(可选) ├── index.html # 参考:生成的 HTML 文件 ├── style.css # 参考:生成的 CSS 文件 └── assets/ ├── images/ # 图片资源 └── fonts/ # 字体资源 ``` ## 🎯 核心文件说明 ### 1. screenshot.png - **用途:** 页面完整截图,用于视觉参考 - **截取方式:** 使用 Chrome DevTools Protocol (CDP) 系统 API - **特点:** 完整页面截图,包含滚动区域,无拼接痕迹 - **优先级:** ⭐⭐⭐⭐⭐ 最重要的视觉参考 ### 2. domlist.json(TOON 格式) - **用途:** DOM 节点结构映射 - **格式:** ```json { "nodes": { "n1": { "tag": "div", "children": ["n2", "n3"], "styleId": "style_1", "width": "1200px", "height": "800px", "text": "文本内容", "id": "元素ID", "class": "CSS类名", "label": "data-label", "src": "图片路径" } }, "root": "n1" } ``` - **说明:** - `nodes`: 所有节点的映射表 - `root`: 根节点 ID - `width/height`: 从样式中独立存放,精确尺寸 - `styleId`: 指向 stylePool.json 中的样式 ### 3. stylePool.json(TOON 格式) - **用途:** 去重后的样式池 - **格式:** ```json { "styles": { "style_1": { "tw": "flex items-center justify-between", "custom": { "borderRadius": "8px", "boxShadow": "0 2px 8px rgba(0,0,0,0.1)" } } } } ``` - **说明:** - `tw`: Tailwind CSS 类名(已优化) - `custom`: 无法用 Tailwind 表达的自定义样式 - 样式已去重,多个节点可共享同一 styleId ### 4. theme.json(可选) - **用途:** 页面设计令牌(Top 10) - **内容:** 颜色、字体、间距、圆角、阴影等 - **格式:** ```json { "colors": { "background": [{"value": "#ffffff", "count": 15}], "text": [{"value": "#333333", "count": 20}] }, "typography": { "families": ["Inter", "Arial"], "textStyles": [{"size": "16px", "lineHeight": "1.5"}] }, "spacing": ["8px", "16px", "24px"], "radius": ["4px", "8px"], "shadow": { "box": ["0 2px 8px rgba(0,0,0,0.1)"] } } ``` ### 5. content.md(可选) - **用途:** 页面文本内容(Markdown 格式) - **用途:** 快速理解页面信息结构和文案 ### 6. index.html 和 style.css(仅供参考) - **⚠️ 注意:** 这两个文件仅供参考,不是还原的必需文件 - **用途:** - 快速预览页面效果 - 理解 DOM 结构和样式关系 - 验证数据的正确性 - **说明:** - `index.html`: 使用 Tailwind CDN + 自定义样式 - `style.css`: 包含 @font-face 和自定义样式 - 可以直接在浏览器中打开查看效果 - **还原时:** 应该使用 `domlist.json` 和 `stylePool.json`,而不是直接使用这两个文件 ## 🚀 快速还原指引(推荐) **目标:** 快速生成页面视觉效果,节省 token **数据源优先级:** 1. ⭐⭐⭐⭐⭐ `screenshot.png` - 视觉参考 2. ⭐⭐⭐⭐ `theme.json` - 设计令牌 3. ⭐⭐⭐ `content.md` - 内容结构 4. ⭐⭐ `index.html` - 参考实现(可选) **操作步骤:** 1. **分析截图** - 识别页面整体布局(header、main、footer) - 识别主要视觉元素(导航、卡片、按钮等) - 识别颜色、字体、间距等设计风格 2. **提取设计令牌**(从 theme.json) - 颜色:背景色、文本色、边框色 - 字体:字体家族、字号、行高、粗细 - 间距:margin、padding、gap - 其他:圆角、阴影、线宽 3. **生成 DOM 结构** - 根据截图创建简化的 DOM 层级 - 不必严格按照 domlist.json - 使用 theme.json 中的设计令牌 4. **添加资源** - 图片:使用 `assets/images/` 中的资源 - 字体:使用 `assets/fonts/` 或系统字体 5. **微调样式** - 对比截图调整布局和样式 - 确保视觉效果接近原页面 **优点:** - ✅ 快速生成 - ✅ 节省 token - ✅ 视觉效果好 ## 🎨 精细还原指引(高保真) **目标:** 高保真还原页面结构与样式 **数据源优先级:** 1. ⭐⭐⭐⭐⭐ `screenshot.png` - 视觉参考 2. ⭐⭐⭐⭐⭐ `domlist.json` - DOM 结构 3. ⭐⭐⭐⭐⭐ `stylePool.json` - 样式数据 4. ⭐⭐⭐⭐ `theme.json` - 设计令牌 5. ⭐⭐ `index.html` - 参考实现(可选) **操作步骤:** 1. **分析截图** - 页面整体布局、颜色分布、主要元素 2. **构建 DOM 树**(从 domlist.json) - 按 `children` 严格构建节点层级 - 保留所有节点属性(id、class、label、src 等) - 使用 `width` 和 `height` 设置精确尺寸 3. **应用样式**(从 stylePool.json) - 每个节点通过 `styleId` 关联样式 - `tw` 字段:Tailwind CSS 类名 - `custom` 字段:自定义样式(CSS-in-JS 或 style 属性) 4. **添加资源** - 图片:`assets/images/` 中的资源,保持原始尺寸 - 字体:`assets/fonts/` 中的 Web 字体,使用 @font-face 5. **微调细节** - 对比截图调整节点尺寸、间距、字体、阴影 - 确保视觉效果高度还原 **优点:** - ✅ 高保真还原 - ✅ 结构完整 - ✅ 样式精确 ## 💡 使用建议 ### 选择还原方式 - **快速原型:** 使用快速还原指引 - **生产环境:** 使用精细还原指引 - **AI Agent:** 使用渐进式还原指引(见下方 🧠 模式) - **学习参考:** 打开 `index.html` 查看效果 ### 注意事项 1. **截图优先:** 如果数据与截图冲突,以截图为准 2. **样式优化:** stylePool 中的样式已优化(Tailwind + 自定义) 3. **资源路径:** 图片和字体路径需要根据实际部署调整 4. **响应式:** 原始页面的响应式样式可能未完全保留 --- ## 🧠 渐进式高精度还原(AI Agent 推荐) 使用查询脚本实现渐进式数据读取,避免 Context Window 溢出。 当离线数据不完整时,利用 Playwright 回溯原始页面补充采集。 **前置条件:** Node.js >= 18 **原始页面 URL:** `manifest.json` → `sourceUrl` 字段。 当数据不准确时,AI 可通过 Playwright 访问此 URL 获取实时信息。 ### 渐进式读取 ```bash # Step 1 — 全局概览(~500 tokens) node scripts/query-page-data.mjs summary node scripts/query-page-data.mjs skeleton --depth=2 # Step 2 — 按 Section 深入 node scripts/query-page-data.mjs subtree n2 --depth=3 node scripts/query-page-data.mjs nodes n3,n4,n5 --fields=style,text,selector # Step 3 — 条件反查 node scripts/query-page-data.mjs find --tag=button --interactive node scripts/query-page-data.mjs find --text="登录" ``` ### 在线回溯(按需) 当发现离线数据可疑时,可使用 Playwright(MCP 或 CLI)访问 `sourceUrl`: - 每个节点文件 `flat/nodes/{id}.json` 包含 `selector` 字段 - 该 `selector` 可直接用于 `page.locator(selector)` 定位原始元素 - 截图、computedStyle、hover 态等均可按需获取 ### 扁平化文件结构(full/interactive 模式) ``` flat/ ├── skeleton.json # 极简骨架树(含 sourceUrl,< 5KB) ├── index.json # 反向索引(tag/role/interactive 分类) ├── nodes/ # 每个节点的完整数据(含 selector + bbox) │ ├── n1.json │ └── ... └── styles/ # 每个样式的完整数据 ├── style_1.json └── ... ``` --- ## 📚 相关资源 - **TOON 格式:** https://github.com/toon-format/toon - **Tailwind CSS:** https://tailwindcss.com/ - **Chrome Extension:** Axhub Make --- **生成时间:** 2026-04-20T15:28:01.363Z **版本:** 3.0(渐进式检索 + 在线回溯)