用途:把 Playwright MCP 当作数据采集引擎而非 e2e 测试工具,按“采集阶梯”从优先到保底选择策略:L0 内部 JSON API(XHR/fetch)、L1 内嵌 JSON(NEXT_DATA 等)、L2 DOM 提取、L3 真实渲染交互。
主要能力:用 browser_network_requests 发现 API;用 browser_evaluate 在页面内跑 fetch 循环、DOM 解析,结果按 filename 直接落盘,仅在上下文留一行链接;用 browser_run_code_unsafe 处理跨域、多标签与需要登录的 page.request 请求,支持并发工作池;用 scripts/finalize.py 生成 JSONL/CSV 并统计字段填充率;输出 crawl-report.md 记录端点、分页方式、认证方式、质量与限制。
必要用法:先对一个页面做侦察,确认是 L0/L1/L2/L3;先做 2-3 页小规模冒烟测试再全量;循环必须设上限并记录 _src、_at 来源字段;大结果按约 5000 条或 20MB 分块保存;失败 URL 与错误一并保留。运行示例:python3 ~/.claude/skills/power-crawl/scripts/finalize.py data/raw/*.json --out data/quotes --key text --report;采集前先 mkdir -p data/raw,filename 不自动建目录。
适用场景:需要批量抓取列表与详情页、存在隐藏 API 或内嵌数据的站点、需登录会话复用、增量采集与可复现的抓取报告。
限制与边界:run_code_unsafe 沙箱缺 setTimeout、fetch、URL、Buffer、process 等全局,需用 page.waitForTimeout 或页面桥接落盘;页面内代码受同源限制,跨域走 run_code_unsafe;filename 以 cwd 为基准且不支持越界;登录、2FA、验证码由用户本人完成,不绕过访问控制;robots/ToS 限制需事先告知;遇 429/403 应降并发并加延迟。其他细节暂未提供。