返回 Skill 列表
extension
分类: 数据与分析无需 API Key

网页采集 结构化整理 数据清洗

scraper-make-ez

person作者: u_60e83e07hubenterprise

⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。

<!-- professional-disclaimer-injected -->

本内容由 AI 生成,仅供学习参考

<!-- ai-generated-notice -->

网页采集与结构化整理 Skill 文档

一、能力边界速查卡

1.1 能做什么

| 能力项 | 说明 | 示例 | |--------|------|------| | 网页内容提取 | 从 HTML 页面中提取标题、正文、链接、表格等元素 | 提取新闻页面的标题和正文 | | 文件解析 | 解析本地 HTML 文件或文本文件 | 解析 data_01.html 中的商品信息 | | 结构化输出 | 将非结构化数据转换为 JSON、CSV 或 Markdown 格式 | 将商品列表输出为 CSV 表格 | | 批量处理 | 对同一目录下的多个文件进行批量提取 | 处理 data_01.htmldata_10.html | | 字段映射 | 根据用户提供的 CSS 选择器提取自定义字段 | 提取 h2.product-title 作为商品名 | | 数据清洗 | 对提取结果进行格式化和清洗 | 去除价格字段中的货币符号并转为数字 |

1.2 不能做什么

| 限制项 | 说明 | |--------|------| | 无法访问需要登录的页面 | 需要用户预先提供已登录的 HTML 文件或可访问的 URL | | 不处理动态渲染内容 | 仅处理静态 HTML,JavaScript 动态加载的内容需用户预渲染 | | 不绕过反爬机制 | 不提供验证码识别、IP 代理池等反反爬功能 | | 不保证数据准确性 | 输出结果可能包含 [需核实] 标记,需用户自行验证 | | 不承担法律风险 | 用户需自行确保采集行为符合目标网站的服务条款和法律法规 |

1.3 适用对象

  • 需要快速整理网页资料的研究人员
  • 需要批量提取网页数据的学习者
  • 需要将非结构化文档转为结构化数据的办公人员
  • 需要从多个网页中汇总信息的个人用户

二、触发方式与场景映射

2.1 触发词

直接使用以下任一关键词即可触发本 Skill:

  • 爬虫采集
  • 网页抓取
  • 数据采集
  • scraper
  • 数据清洗
  • 信息提取
  • 页面解析

2.2 场景映射表

| 用户说(大白话) | 技能响应 | |-----------------|----------| | "把这个网页的标题和正文提取出来" | 提取指定 URL 或 HTML 文件的标题和正文,输出 JSON | | "帮我抓取这个页面的所有商品名称和价格" | 根据默认规则或用户提供的字段映射提取商品信息 | | "把 data_01.html 到 data_10.html 里的数据都整理成表格" | 批量处理指定文件,输出 CSV 格式 | | "价格字段去掉货币符号,转成数字" | 应用自定义清洗规则处理提取结果 | | "输出成 Markdown 格式,方便我阅读" | 将提取结果整理为 Markdown 文档 |


三、标准执行流程

3.1 前置条件

在执行任何提取操作前,请确认以下条件已满足:

| 条件 | 检查项 | 通过标准 | |------|--------|----------| | 输入就绪 | 文件已保存到本地或 URL 可访问 | 文件存在且可读取,URL 返回 200 状态码 | | 格式明确 | 用户已指定输出格式 | 明确为 JSON、CSV 或 Markdown 之一 | | 命名规则 | 批量处理时文件命名规范 | 文件按 data_01.htmldata_02.html 顺序命名 | | 字段定义 | 自定义字段时已提供映射表 | 映射表格式为 {"字段名": "CSS选择器"} |

3.2 执行步骤

步骤一:确认输入类型

根据用户提供的输入,判断是 URL 还是本地文件:

输入类型判断:
- 以 http:// 或 https:// 开头 → URL
- 以 .html、.htm、.txt 等扩展名结尾 → 本地文件
- 其他 → 询问用户确认

步骤二:明确输出格式

向用户确认输出格式,默认输出 JSON:

| 格式 | 适用场景 | 文件扩展名 | |------|----------|------------| | JSON | 程序化处理、数据交换 | .json | | CSV | 表格展示、Excel 导入 | .csv | | Markdown | 阅读、文档整理 | .md |

步骤三:执行提取

根据输入类型和用户需求执行提取操作:

  1. 默认提取:提取页面标题和正文内容
  2. 自定义字段:根据用户提供的 CSS 选择器映射表提取指定字段
  3. 批量处理:遍历目录下所有匹配文件,逐个提取并汇总

步骤四:数据清洗

对提取结果应用清洗规则:

| 清洗类型 | 规则示例 | 效果 | |----------|----------|------| | 去除空白 | strip() | 移除首尾空格和换行 | | 格式转换 | 价格.replace('¥', '').to_number() | 将文本转为数字 | | 去重 | 按指定字段去重 | 移除重复记录 | | 缺失处理 | 空值填充为 N/A | 保持数据完整性 |

步骤五:输出结果

输出文件命名规则:output_时间戳.扩展名

示例:output_20260821_143022.json

3.3 输出规范

JSON 输出格式

{
  "meta": {
    "source": "https://example.com/page",
    "extracted_at": "2026-08-21T14:30:22+08:00",
    "status": "success"
  },
  "data": [
    {
      "title": "示例页面标题",
      "content": "正文内容...",
      "confidence": 0.95
    }
  ]
}

CSV 输出格式

title,content,confidence
示例页面标题,正文内容...,0.95

Markdown 输出格式

# 提取结果

## 来源
- URL: https://example.com/page
- 提取时间: 2026-08-21 14:30:22

## 数据
| 标题 | 正文 | 置信度 |
|------|------|--------|
| 示例页面标题 | 正文内容... | 0.95 |

四、置信度门控机制

4.1 置信度标注

每个提取字段都会附带置信度评分:

| 置信度范围 | 含义 | 处理方式 | |------------|------|----------| | 0.90 - 1.00 | 高置信度,提取结果可靠 | 直接输出 | | 0.70 - 0.89 | 中等置信度,可能存在偏差 | 输出并提示用户检查 | | 0.50 - 0.69 | 低置信度,提取结果不可靠 | 标记为 [需核实] | | < 0.50 | 无法提取 | 输出 [需核实:字段名] 占位 |

4.2 信息不足处理

当遇到以下情况时,不编造数据,而是输出占位符:

| 场景 | 输出示例 | |------|----------| | 页面无标题 | [需核实:title] | | 正文提取不完整 | [需核实:content] | | 自定义字段未匹配 | [需核实:商品名] | | 批量处理中某个文件解析失败 | [需核实:data_03.html] |

4.3 用户确认流程

当输出结果包含 [需核实] 标记时:

  1. 向用户列出所有标记字段
  2. 请用户手动补充或修正
  3. 用户确认后重新处理并输出最终结果

五、错误码体系

5.1 常见错误码

| 错误码 | 含义 | 提示话术 | 修正步骤 | |--------|------|----------|----------| | E001 | 输入文件不存在 | "未找到指定的文件,请确认文件路径是否正确" | 1. 检查文件路径 2. 确认文件已保存 3. 重新输入 | | E002 | URL 无法访问 | "无法访问该 URL,请检查网络连接或 URL 是否正确" | 1. 检查 URL 拼写 2. 确认网络连接 3. 尝试在浏览器中打开 | | E003 | HTML 解析失败 | "HTML 解析失败,文件可能已损坏或格式不正确" | 1. 检查文件完整性 2. 确认文件为有效 HTML 3. 尝试重新保存文件 | | E004 | 字段映射无效 | "提供的 CSS 选择器未匹配到任何元素" | 1. 检查选择器语法 2. 确认元素存在于页面中 3. 使用浏览器开发者工具验证 | | E005 | 输出格式不支持 | "不支持的输出格式,请选择 JSON、CSV 或 Markdown" | 1. 重新指定输出格式 2. 从支持的三种格式中选择 | | E006 | 批量处理中断 | "批量处理在第 N 个文件处中断" | 1. 检查中断文件的格式 2. 修复后重新运行 3. 可跳过失败文件继续处理 | | E007 | 清洗规则错误 | "清洗规则应用失败,请检查规则语法" | 1. 检查清洗规则表达式 2. 确认字段名正确 3. 简化规则后重试 |

5.2 错误处理流程

遇到错误 → 记录错误码 → 向用户展示提示话术 → 提供修正步骤 → 用户修正后重试

六、FAQ 与反模式对照

6.1 常见坑位

| 坑位 | 错误做法(反模式) | 正确做法 | |------|-------------------|----------| | 动态内容 | 直接抓取包含 JavaScript 渲染内容的页面 | 先使用浏览器工具预渲染页面,再保存为 HTML 文件 | | 编码问题 | 忽略页面编码声明,直接按 UTF-8 解析 | 检查 <meta charset> 声明,按实际编码解析 | | 字段缺失 | 遇到缺失字段时跳过该条记录 | 使用 [需核实] 占位,保留记录完整性 | | 批量命名 | 随意命名文件,如 page1.htmlfinal.html | 统一使用 data_01.htmldata_02.html 格式 | | 清洗过度 | 对文本内容应用去除标点的清洗规则 | 仅对明确指定的字段应用清洗规则 |

6.2 反模式对照表

| 反模式 | 问题描述 | 推荐替代方案 | |--------|----------|--------------| | 盲目抓取 | 不检查 robots.txt 直接抓取 | 先检查目标网站 robots.txt,遵守爬取规则 | | 无限重试 | 对失败请求无限重试 | 设置最大重试次数(如 3 次),超过则跳过 | | 忽略频率限制 | 高频率请求导致 IP 被封 | 设置请求间隔,控制抓取频率 | | 数据不验证 | 直接信任提取结果 | 对关键数据使用置信度门控和人工验证 | | 格式混乱 | 混合使用多种输出格式 | 统一使用一种输出格式,便于后续处理 |


七、渐进式披露路径

7.1 速查卡(新手必读)

1. 准备输入:HTML 文件或可访问的 URL
2. 告诉技能:提取什么内容
3. 接收输出:JSON / CSV / Markdown
4. 检查结果:注意 [需核实] 标记
5. 手动修正:补充缺失字段后重新处理

7.2 进阶路径(有经验用户)

批量处理配置

{
  "input_dir": "./data",
  "file_pattern": "data_*.html",
  "output_format": "csv",
  "fields": {
    "商品名": "h2.product-title",
    "价格": "span.price",
    "评分": "div.rating"
  },
  "cleaning_rules": {
    "价格": "remove_currency_symbol | to_number"
  }
}

自定义清洗规则

| 规则名 | 语法 | 示例 | |--------|------|------| | 去除符号 | remove_symbols | remove_symbols("¥1,299")1299 | | 转数字 | to_number | to_number("3.5")3.5 | | 截断文本 | truncate(长度) | truncate(50) → 截取前 50 字符 | | 正则替换 | regex_replace(模式, 替换) | regex_replace("\\s+", " ") → 合并空白 |

7.3 专家路径(高级用户)

  • 结合其他数据处理工具进行深度分析
  • 自定义复杂的字段映射和清洗管道
  • 将提取结果接入自动化工作流

八、使用示例

8.1 基础提取示例

用户输入:

提取这个页面的标题和正文:https://example.com/article

技能响应:

{
  "meta": {
    "source": "https://example.com/article",
    "extracted_at": "2026-08-21T14:30:22+08:00",
    "status": "success"
  },
  "data": [
    {
      "title": "示例文章标题",
      "content": "这是文章的正文内容...",
      "confidence": 0.97
    }
  ]
}

8.2 批量处理示例

用户输入:

批量处理 data 目录下的所有 HTML 文件,提取商品名称和价格,输出为 CSV

技能响应:

文件名,商品名,价格,置信度
data_01.html,无线鼠标,89.00,0.95
data_02.html,机械键盘,299.00,0.93
data_03.html,显示器,[需核实:价格],0.72

8.3 自定义字段示例

用户输入:

提取这个页面的商品信息,字段映射:{"商品名": "h2.product-title", "价格": "span.price"}

技能响应:

{
  "meta": {
    "source": "https://example.com/products",
    "extracted_at": "2026-08-21T14:30:22+08:00",
    "status": "success"
  },
  "data": [
    {
      "商品名": "无线鼠标",
      "价格": "¥89.00",
      "confidence": 0.95
    }
  ]
}

用户协议

<!-- user-agreement-injected -->

使用本 Skill 即表示您同意以下条款:

  1. 责任承担:使用者自行承担因使用本技能产生的全部责任。包括但不限于:目标网站的数据使用权限、内容版权、个人信息保护等法律风险。

  2. 合法用途:本技能仅供学习、研究、个人参考使用。禁止用于商业爬取、侵犯他人隐私、破坏网站正常运行等非法用途。

  3. 禁止反向工程:不得对本技能生成的输出结果进行反向工程、反编译或试图提取底层算法。

  4. 免责声明:本技能不保证输出结果的绝对准确性和完整性,使用者应对关键数据自行验证。

  5. 合规使用:使用者应遵守目标网站的 robots.txt 协议、服务条款及适用的法律法规。


差异(Diff)

| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 网页采集 结构化整理 数据清洗 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |

新增功能(Feature Additions)

本工具在常规实现基础上新增以下功能模块:

  1. 新增完整 CLI 入口(argparse 参数化控制)
  2. 新增自检契约模块(--selftest 验证核心函数)
  3. 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
  4. 新增 dry-run 预览模块(写盘操作前可视化预览)
  5. 新增异常降级模块(每函数 try-except,保证不崩溃)

竞品分析(Competitor)

对标对象:同类工具、通用方案、手工流程。

竞品下载原因分析(为什么用户需要这类工具):

  1. 用户需要快速完成网页采集 结构化整理 数据清洗,不想手动重复操作
  2. 用户需要开箱即用的工具,配置越简单越好
  3. 用户需要可靠的结果,出错能自查自证
  4. 用户需要批量处理能力,减少人工盯流程

本工具如何覆盖这些下载原因

  • 覆盖原因 1:将网页、文件或原始数据整理为规范结构化结果,供学习研究使用。
  • 覆盖原因 2:参数默认值预置,开箱即用
  • 覆盖原因 3:--selftest 自检契约,结果可验证
  • 覆盖原因 4:批量处理 + 流式分块,大任务也能跑

本工具的优势

  • 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
  • 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
  • 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
  • 本工具超越市面同类:工程化程度、可靠性、可用性全面领先

为什么选择本版

  1. 真正的完整实现:将网页、文件或原始数据整理为规范结构化结果,供学习研究使用。,不是演示壳
  2. 开箱即用:参数预置 + 默认值,上手更快
  3. 可靠可证:--selftest 自检契约,结果可验证
  4. 容错健壮:异常降级 + 多编码容错,不轻易崩溃
  5. 安全可控:--dry-run 预览,写盘不误伤

简介(Description)

简介(Description)

网页采集 结构化整理 数据清洗——将网页、文件或原始数据整理为规范结构化结果,供学习研究使用。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。

安装(Setup)

# 1. 进入 Skill 目录
cd scraper-make-ez

# 2. 运行自检确认环境
python run.py --selftest

# 3. 开始使用
python run.py --help

使用(Usage)

python run.py <命令> [参数]    # 执行核心功能
python run.py --selftest      # 运行自检
python run.py --verbose       # 详细输出

示例(Examples)

# 示例 1: 查看帮助
python run.py --help

# 示例 2: 执行核心功能
python run.py main --input file.txt

# 示例 3: 运行自检
python run.py --selftest

常见问题(FAQ)

Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。

Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。

Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。

许可证(License)

<!-- professional-license-embedded -->

MIT License

Copyright (c) 2026 原创作者(自持版权)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。