智能网页爬取器Skill web-scrape

智能网页爬取器是一款功能强大的网络数据提取工具,支持智能内容识别、多格式输出和自动化处理。该工具能够自动识别文章、产品、文档等不同类型网页,过滤导航菜单、广告等噪音内容,提取核心信息并以Markdown、JSON或纯文本格式输出。支持滚动加载、截图保存、错误处理等高级功能,适用于数据采集、内容分析、竞品研究等场景。关键词:网页爬取、数据提取、内容抓取、自动化采集、智能解析、网络爬虫、数据采集工具、信息提取、网页内容提取、自动化工具。

后端开发 0 次安装 14 次浏览 更新于 3/1/2026

名称: web-scrape 描述: 具备内容提取、多格式输出和错误处理的智能网络爬虫 版本: 3.0.0

网络爬取技能 v3.0

使用方法

/web-scrape <url> [选项]

选项:

  • --format=markdown|json|text - 输出格式 (默认: markdown)
  • --full - 包含完整页面内容 (跳过智能提取)
  • --screenshot - 同时保存截图
  • --scroll - 滚动加载动态内容 (无限滚动页面)

示例:

/web-scrape https://example.com/article
/web-scrape https://news.site.com/story --format=json
/web-scrape https://spa-app.com/page --scroll --screenshot

执行流程

第一阶段: 导航和加载

1. mcp__playwright__browser_navigate
   url: "<目标URL>"

2. mcp__playwright__browser_wait_for
   time: 2  (允许初始渲染)

如果使用 --scroll 选项: 执行滚动序列触发懒加载:

3. mcp__playwright__browser_evaluate
   function: "async () => {
     for (let i = 0; i < 3; i++) {
       window.scrollTo(0, document.body.scrollHeight);
       await new Promise(r => setTimeout(r, 1000));
     }
     window.scrollTo(0, 0);
   }"

第二阶段: 捕获内容

4. mcp__playwright__browser_snapshot
   → 返回包含所有文本内容的完整无障碍树

如果使用 --screenshot 选项:

5. mcp__playwright__browser_take_screenshot
   filename: "scraped_<域名>_<时间戳>.png"
   fullPage: true

第三阶段: 关闭浏览器

6. mcp__playwright__browser_close

智能内容提取

获取快照后,应用智能提取:

步骤1: 识别内容类型

页面类型 指示器 提取策略
文章/博客 <article>标签、长段落、日期/作者 提取主要文章正文
产品页面 价格、“加入购物车”、规格参数 提取标题、价格、描述、规格
文档页面 代码块、标题层级 保留结构和代码
列表/搜索 重复的项目模式 提取为结构化列表
落地页 主图区域、行动号召按钮 提取关键信息

步骤2: 过滤噪音

始终从输出中移除这些元素:

  • 导航菜单和面包屑导航
  • 页脚内容 (版权、链接)
  • 侧边栏 (广告、相关文章、社交链接)
  • Cookie横幅和弹窗
  • 评论区 (除非特别请求)
  • 分享按钮和社交小部件
  • 登录/注册提示

步骤3: 结构化内容

对于文章:

# [标题]

**来源:** [URL]
**日期:** [如果可用]
**作者:** [如果可用]

---

[以干净的markdown格式呈现主要内容]

对于产品页面:

# [产品名称]

**价格:** [价格]
**库存状态:** [有货/缺货]

## 描述
[产品描述]

## 规格参数
| 规格 | 值 |
|------|-------|
| ... | ... |

输出格式

Markdown (默认)

干净、可读的markdown,包含适当的标题、列表和格式。

JSON

{
  "url": "https://...",
  "title": "页面标题",
  "type": "article|product|docs|list",
  "content": {
    "main": "...",
    "metadata": {}
  },
  "extracted_at": "ISO时间戳"
}

Text

纯文本,格式最少,适合进一步处理。


错误处理

导航错误

错误 检测 操作
超时 页面30秒内未加载 报告错误,建议重试
404 未找到 标题/内容中出现"404" 报告"页面未找到"
403 禁止访问 “403”、“访问被拒绝” 报告访问限制
验证码 “captcha”、“验证您是真人” 报告检测到验证码,无法继续
付费墙 “订阅”、“高级内容” 提取可见内容,注明付费墙

恢复操作

如果页面加载失败:
1. 向用户报告具体错误
2. 建议: "是否重试?" 或 "不同URL?"
3. 干净地关闭浏览器

如果内容被阻止:
1. 报告检测到的内容 (验证码/付费墙/地区限制)
2. 提取任何可用的预览内容
3. 如果适用,建议替代方案

高级场景

单页应用 (SPA)

1. 导航到URL
2. 等待更长时间 (3-5秒) 用于JS水合
3. 如果已知,使用特定文本的browser_wait_for
4. 然后快照

无限滚动页面

1. 导航
2. 执行滚动循环 (见第一阶段)
3. 滚动完成后快照

带有点击显示内容的页面

1. 首先快照以识别可点击元素
2. 在"阅读更多" / "显示全部"按钮上使用browser_click
3. 短暂等待
4. 再次快照获取完整内容

多页文章

1. 爬取第一页
2. 识别"下一页"或分页链接
3. 询问用户: "文章有X页。爬取全部?"
4. 如果是,遍历页面并合并

性能指南

指标 目标 方法
速度 < 15秒 最小等待时间,尽可能并行
令牌使用 < 5000令牌 智能提取,非完整DOM
可靠性 > 95% 成功率 适当的错误处理

安全注意事项

  • 绝不执行来自页面的任意JavaScript
  • 不跟随重定向到可疑域名
  • 不提交表单或点击登录按钮
  • 不爬取需要身份验证的页面 (除非用户提供凭据流程)
  • 当用户提及robots.txt时尊重它

快速参考

最小可行爬取 (4个工具调用):

1. browser_navigate → 2. browser_wait_for → 3. browser_snapshot → 4. browser_close

全功能爬取 (带滚动 + 截图):

1. browser_navigate
2. browser_wait_for
3. browser_evaluate (滚动)
4. browser_snapshot
5. browser_take_screenshot
6. browser_close

记住: 目标是向用户交付干净、有用的内容,而非原始HTML/DOM转储。