<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
scrapecraft — 网页采集流程编排工具
一、能力边界(一页纸速查卡)
1.1 能做什么
| 能力项 | 说明 | 示例 |
|--------|------|------|
| 自然语言转采集方案 | 将口语化需求解析为结构化采集配置 | "抓取某电商网站前3页的商品标题和价格" → 生成配置 |
| 选择器自动生成与校验 | 为每个目标字段生成 CSS/XPath 选择器,并执行匹配验证 | 自动生成 h2.product-title 并验证匹配数 ≥1 |
| 翻页规则识别 | 支持 URL 参数翻页、点击"下一页"按钮、滚动加载三种模式 | 识别 ?page=2 规律并自动递增 |
| 试跑模式 | 单条数据验证,输出字段级置信度 | 试跑返回 1 条记录,附带每个字段的匹配元素数量 |
| 批量执行与门控 | 全量采集,带自动暂停机制 | 某字段匹配率 <90% 时自动暂停并等待人工确认 |
| 结果抽查与质检 | 对输出数据做格式校验,输出质量报告 | 检测到邮箱字段格式错误率 >10% 时输出警告 |
1.2 不能做什么
| 限制项 | 说明 | |--------|------| | 不处理登录墙后的数据 | 需要 Cookie 或 Session 的站点需外部配合(见进阶用法) | | 不执行 JavaScript 渲染 | SPA 站点需搭配预渲染工具(见进阶用法) | | 不绕过反爬机制 | 不提供验证码识别、IP 池轮换等功能 | | 不保证数据合法性 | 数据使用责任由使用者自行承担(见文末用户协议) |
1.3 适用对象
- 适用:静态或轻动态网页、公开数据、结构化列表页/详情页
- 不适用:强反爬站点、复杂登录流程、需要分布式采集的大规模任务
二、触发方式
2.1 触发词
直接使用以下任一词汇即可激活本 Skill:
爬虫采集、网页抓取、数据抽取、采集流程、scrapecraft、页面解析、字段提取
2.2 场景映射表
| 你说的话(大白话) | 本 Skill 的理解 | 执行动作 | |-------------------|----------------|----------| | "帮我把这个页面上的新闻标题都抓下来" | 单页采集,字段=标题 | 生成配置 → 试跑 → 批量 | | "这个网站有 20 页列表,每页 30 条,我要全部商品名和价格" | 翻页采集,字段=商品名+价格 | 识别翻页规则 → 试跑 → 批量 | | "我要采集这个表格里的所有数据" | 表格采集,字段=表头各列 | 自动识别 table 结构 → 试跑 → 批量 | | "每天跑一次这个采集任务" | 定时任务(需外部调度) | 输出可复用配置,配合 cron 使用 |
三、标准流程
3.1 前置条件
| 条件 | 要求 | |------|------| | 目标 URL | 必须提供完整 URL(含协议头) | | 字段清单 | 至少 1 个目标字段,用自然语言描述即可 | | 翻页需求 | 如需多页,说明总页数或翻页方式 | | 网络环境 | 目标站点可正常访问 |
3.2 执行步骤
Step 1 — 需求解析
输入自然语言需求,系统自动提取三要素:
| 要素 | 提取方式 | 示例 |
|------|----------|------|
| URL | 正则匹配 https?:// 开头的字符串 | https://example.com/products |
| 字段 | 识别"标题/价格/名称"等实体词 | "抓取商品标题和价格" → 字段=[标题, 价格] |
| 翻页 | 识别"前N页/全部/下一页"等翻页意图 | "前3页" → 翻页=3 |
Step 2 — 流程可视化确认
生成采集流程图,包含:
[起始 URL] → [列表页解析] → [字段提取] → [翻页判断] → [数据汇总]
↑__________ 循环直到页数耗尽 __________|
同时展示每个字段的候选选择器:
{
"字段": "标题",
"候选选择器": ["h2.product-title", ".item-title a", "div[class*='title']"],
"匹配数": 30,
"置信度": "高"
}
Step 3 — 试跑验证
执行单条数据试跑,输出:
{
"状态": "成功",
"数据": {
"标题": "无线蓝牙耳机 Pro 版",
"价格": "¥299"
},
"字段置信度": {
"标题": {"匹配元素数": 1, "置信度": "高"},
"价格": {"匹配元素数": 1, "置信度": "高"}
}
}
门控规则:任一字段匹配元素数为 0,标记为 低置信度,需人工调整选择器。
Step 4 — 批量执行
- 按翻页规则循环采集
- 每页采集后统计字段匹配率
- 匹配率 <90% 时自动暂停,输出提示:
[暂停] 字段"价格"匹配率 85.3%(第 3/10 页)
可能原因:页面结构变化 / 部分商品缺货无价格
请人工确认后输入 continue 继续,或 adjust 调整选择器
Step 5 — 结果抽查
批量完成后,随机抽取 5% 数据做格式校验:
| 校验项 | 规则 | 失败处理 | |--------|------|----------| | 字段非空 | 不允许空字符串 | 计入错误率 | | 格式匹配 | 邮箱/日期/数字等格式正则 | 计入错误率 | | 去重 | 主键字段不允许重复 | 输出重复警告 |
错误率 >10% 时输出:
[警告] 格式错误率 12.5%,超过 10% 阈值
建议:检查清洗规则,或人工修正后重新执行
3.3 输出规范
最终输出为 JSON 文件,结构如下:
{
"task_id": "scrape_20260821_001",
"target_url": "https://example.com/products",
"total_pages": 3,
"total_records": 87,
"fields": ["标题", "价格"],
"data": [
{"标题": "无线蓝牙耳机 Pro 版", "价格": "¥299"},
{"标题": "智能手表 S2", "价格": "¥1599"}
],
"quality_report": {
"字段匹配率": {"标题": "100%", "价格": "96.5%"},
"格式错误率": "3.4%",
"重复率": "0%"
}
}
四、置信度门控
4.1 置信度分级
| 级别 | 判定标准 | 处理方式 |
|------|----------|----------|
| 高 | 匹配元素数 ≥1,且字段值格式符合预期 | 正常采集 |
| 中 | 匹配元素数 ≥1,但格式存在少量偏差 | 采集并标记,人工复核 |
| 低 | 匹配元素数 = 0,或格式严重不符 | 暂停,输出 [需核实:字段名] 占位 |
4.2 占位符规则
当某字段无法获取时,禁止编造数据,使用以下占位符:
[需核实:标题]
[需核实:价格]
占位符会出现在最终输出中,并计入质量报告。
4.3 信息不足时的处理
当用户需求描述不完整时,主动询问:
当前需求缺少以下信息:
1. 目标 URL(必填)
2. 需要采集的字段(至少 1 个)
3. 翻页范围(默认仅第 1 页)
请补充后继续。
五、错误码体系
| 错误码 | 含义 | 提示话术 | 修正步骤 | |--------|------|----------|----------| | E001 | URL 无法访问 | "目标 URL 返回 404 或连接超时" | 1. 检查 URL 拼写 2. 确认站点可访问 3. 更换网络环境 | | E002 | 选择器无匹配 | "字段'标题'的选择器未匹配到任何元素" | 1. 查看页面 HTML 2. 调整选择器 3. 重新试跑 | | E003 | 翻页规则识别失败 | "无法识别翻页规律,请确认翻页方式" | 1. 指定翻页参数名(如 page)2. 或选择"点击下一页"模式 | | E004 | 字段匹配率过低 | "字段'价格'匹配率 85%,低于 90% 阈值" | 1. 检查页面结构变化 2. 调整选择器 3. 确认后继续 | | E005 | 格式错误率超标 | "格式错误率 12.5%,超过 10% 阈值" | 1. 检查清洗规则 2. 人工修正数据 3. 重新执行 | | E006 | 批量执行中断 | "批量执行在第 3 页中断,原因:网络超时" | 1. 检查网络 2. 从断点页续跑 3. 或降低采集频率 |
六、FAQ 反模式
6.1 常见坑与正确姿势
| 反模式(错误做法) | 正确姿势 |
|-------------------|----------|
| 需求描述含糊:"把数据抓下来" | 明确 URL、字段、翻页范围三要素 |
| 试跑失败后直接改代码 | 先看置信度报告,定位是选择器问题还是页面结构问题 |
| 批量执行中不关注匹配率 | 设置匹配率监控,<90% 自动暂停 |
| 忽略格式校验直接使用数据 | 执行结果抽查,确认错误率 <10% 后再使用 |
| 对低置信度字段强行赋值 | 使用 [需核实:字段] 占位,人工补充 |
6.2 典型场景问答
Q: 页面是动态加载的,直接采集不到数据怎么办? A: 本 Skill 不执行 JS 渲染。建议使用外部预渲染工具(如 Puppeteer)将页面转为静态 HTML 后再采集。
Q: 需要登录才能看到的数据能采集吗? A: 可以,但需要外部提供 Cookie。在需求描述中附带 Cookie 字符串,系统会将其注入请求头。
Q: 采集速度太慢怎么办? A: 默认单线程采集。如需加速,可在需求中指定并发数(建议 ≤5),系统会调整请求间隔。
七、渐进式披露
7.1 速查卡(新手必读)
1. 说清需求:URL + 字段 + 翻页
2. 看流程图:确认选择器和翻页规则
3. 点试跑:验证 1 条数据
4. 点批量:执行全量采集
5. 看报告:确认质量后导出
7.2 分层次阅读路径
| 读者类型 | 建议阅读内容 | |----------|-------------| | 新手 | 第 1-3 章(能力边界 + 触发方式 + 标准流程) | | 进阶 | 第 4-5 章(置信度门控 + 错误码体系) | | 专家 | 第 6 章 + 进阶用法(见 7.3) |
7.3 进阶用法
- SPA 站点处理:结合外部预渲染工具(如 Puppeteer、Playwright),将渲染后的 HTML 作为输入
- 半公开数据:配置 Cookie 或 Session 后采集,需在需求中明确说明
- 下游数据管道:输出 JSON 可直接对接 ETL 工具、数据库或数据可视化平台
- 自定义清洗规则:在需求中描述清洗逻辑(如"价格去掉货币符号"),系统会生成对应转换函数
八、用户协议
<!-- user-agreement-injected -->使用本 Skill 即表示您同意以下条款:
-
责任承担:通过本 Skill 采集的数据,其使用方式由使用者自行负责。使用者应评估数据的敏感性及适用法律,确保采集和使用行为符合相关法律法规及目标网站的条款规定。
-
禁止反向工程:不得对本 Skill 的代码、算法、内部逻辑进行反向工程、反编译或试图提取源代码。
-
数据使用:本 Skill 仅提供技术实现手段,不对数据内容的合法性、准确性、完整性作任何保证。使用者应自行判断数据质量。
-
免责声明:本 Skill 按"原样"提供,不附带任何明示或暗示的保证。作者不对因使用本 Skill 而产生的任何直接或间接损失承担责任。
-
协议更新:本协议可能随 Skill 版本更新而调整,使用者应定期查阅最新版本。
九、许可证(License)
<!-- professional-license-embedded -->MIT License
版权所有 (c) 2024 FlowForge Studio
特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人士以下权限:不受限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,但须满足以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按"原样"提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权持有人均不对因使用本软件而产生的任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面。
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 网页采集 流程编排 数据抽取 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成网页采集 流程编排 数据抽取,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:用自然语言描述采集需求,自动生成可视化采集流程并执行。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:用自然语言描述采集需求,自动生成可视化采集流程并执行。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
网页采集 流程编排 数据抽取——用自然语言描述采集需求,自动生成可视化采集流程并执行。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd scrapecraft
# 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 --selftest file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
微信扫一扫