SuperAPI AI 工具集

playwright-web-scraper

数据与分析

查看项目

更新于 10-15 14:25

技能介绍

用途

Playwright Web Scraper 用于从多个网页中提取结构化数据,并采用尊重网站、符合伦理的爬取方式。当任务涉及“从网站抓取数据”“从页面提取信息”“从站点收集数据”或“爬取多个页面”时,可使用本技能。它不适用于测试工作流(应使用 playwright-e2e-testing)、错误监控(应使用 playwright-console-monitor)或网络分析(应使用 playwright-network-analyzer)。使用时应始终尊重 robots.txt 和速率限制。

主要能力

  • 使用 Playwright MCP 浏览器工具导航页面、等待内容加载并执行 JavaScript 提取数据。
  • 通过 browser_evaluate 从页面中提取结构化字段,例如标题、价格、评分、链接等,并可过滤不完整记录。
  • 支持分页抓取,通过循环翻页并检查“下一页”按钮状态来收集多页数据。
  • 内置速率限制策略:标准站点随机延迟 1-3 秒,高流量站点 3-5 秒,小型站点 5-10 秒,出错后采用指数退避(5s、10s、20s、40s)。
  • 根据 HTTP 响应码自适应调整:200 继续正常延迟;429 增加延迟至 10 秒后重试;503 等待 60 秒后重试;403 停止抓取该域名。
  • 提供 URL 验证脚本 validate_urls.py,可检查 URL 格式、按域名分组、检查 robots.txt 合规性并输出统计信息。
  • 提供结果处理脚本 process_results.py,可将抓取的 JSON 转换为 CSV、JSON 或 Markdown 表格,并查看统计信息。
  • 支持监控控制台消息和网络请求,检测速率限制警告、封禁提示或验证码等阻塞信号。

使用方式

  1. 准备 URL 列表:创建文本文件,每行一个 URL。
  2. 验证 URL 与 robots.txt 合规性:运行 python scripts/validate_urls.py urls.txt --user-agent "MyBot/1.0",严格模式可加 --strict。
  3. 初始化抓取会话:导航到首个 URL 并执行 browser_snapshot 了解页面结构,识别 CSS 选择器。
  4. 实施限速爬取:在循环中导航、等待内容标记、加入随机延迟(1-3 秒),然后通过 browser_evaluate 提取数据。
  5. 处理错误与速率限制:通过 browser_network_requests 检查 429/503 状态,通过 browser_console_messages 检查速率限制、封禁或验证码消息,必要时指数退避。
  6. 聚合与存储结果:将结果写入 JSON 文件,再使用 process_results.py 转换为 CSV、JSON 或 Markdown,并可查看统计。

适用场景

  • 从电商网站抓取商品列表(标题、价格、评分、链接等)。
  • 从多个分页页面收集结构化数据。
  • 需要遵守 robots.txt 和速率限制的合规数据采集任务。
  • 将抓取结果转换为 CSV、JSON 或 Markdown 以便后续分析。

限制

  • 不用于测试工作流、错误监控或网络分析。
  • 需要 Playwright MCP 浏览器工具和 Python 3.8+(脚本仅使用标准库)。
  • 需要了解基本 CSS 选择器、JavaScript 数据提取、HTTP 状态码以及网络爬取伦理。
  • 应避免不检查 robots.txt、请求间无延迟、忽略 429/503、抓取个人/私密信息、不监控控制台阻塞消息、抓取明确禁止的站点、违反版权使用数据、分页处理不当、硬编码选择器无回退、不验证数据结构等行为。
  • 部分站点在服务条款中禁止抓取,使用前应确认。
  • 建议从小规模开始(5-10 个 URL),逐步扩大,并增量保存进度以防中断。