📦 102 Playwright Scraper Skill — Playwright网页爬虫

v1.0.0

基于Playwright的网页爬虫OpenClaw技能,具备反机器人保护功能。已在Discuss.com.hk等复杂网站上成功测试,支持简单模式和隐匿模式爬取。

0· 21·1 当前·1 累计
smallkeyboy 头像by @smallkeyboy (smallKeyboy)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/16
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
技能代码、文档和运行时说明与其声明的目的(基于Playwright的反机器人爬取)一致;不请求无关凭证或系统级权限。
评估建议
这个技能似乎能实现其所述功能:运行Playwright爬虫(包括规避机器人检测的技术)。安装前请考虑:(1) 法律/道德风险——规避反机器人保护并爬取某些网站可能违反服务条款或当地法律;(2) 资源影响——Playwright会下载Chromium并运行有头浏览器(磁盘和RAM使用);(3) 网络和隐私——爬取的数据和截图默认保存在本地;如果以后添加CAPTCHA解决或代理模块,这些可能需要第三方API密钥,并可能引入外部数据流。建议措施:首先在隔离环境(容器/VM)中运行,自行检查/验证脚本(它们简短且可读),避免提供任何敏感凭证。如果需要CAPTCHA或代理支持,分别审查这些集成和提供商。...
详细分析 ▾
用途与能力
名称/描述与包含的脚本和文档相匹配。仓库实现了Playwright简单和隐匿爬虫,请求的操作(npm install、npx playwright install chromium、运行node脚本)正是Playwright爬虫所需要的。
指令范围
SKILL.md和脚本专注于导航、DOM提取、截图和可选的HTML保存。它们包括反机器人规避(隐藏navigator.webdriver、UA欺骗、类人延迟),这与声明的目的相符。文档提到了代理和CAPTCHA解决(2captcha/Anti-Captcha)的未来集成,但这些在提供的文件中未实现。未发现读取无关系统文件或向隐藏端点传输数据的指令。
安装机制
注册表元数据中没有自定义安装规范;该包通过package.json和JS文件分发,并指示用户运行`npm install`和`npx playwright install chromium`。这从npm注册表拉取Playwright并通过Playwright的官方安装程序下载Chromium——对于此功能是预期的。未使用任意个人URL或归档提取。
凭证需求
技能声明不需要环境变量或凭证。脚本支持可选的环境变量(HEADLESS、WAIT_TIME、SCREENSHOT_PATH、SAVE_HTML、USER_AGENT),这些对于配置是合理的。不请求秘密或不相关的服务令牌。
持久化与权限
注册表标志为默认值(always:false、user-invocable:true、model-invocation enabled)。技能不请求持久平台权限或修改其他技能。它将可选的本地输出(截图、HTML)写入提供或默认的文件路径,这是爬虫的预期行为。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/16

Playwright Scraper Skill v1.2.0:添加了全面的使用指南和脚本描述,包括针对各种网站反机器人级别的详细指导。引入了用例矩阵和性能对比图表,用于选择最佳爬取方法。记录了所提供脚本中使用的反机器人保护策略。包括故障排除步骤、环境变量定制,以及提高爬取成功率的最佳实践。概述了未来改进计划,并提供了有用的外部参考资料。

无害

安装命令

点击复制
官方npx clawhub@latest install 102-playwright-scraper-skill
镜像加速npx clawhub@latest install 102-playwright-scraper-skill --registry https://cn.longxiaskill.com

技能文档

一个基于Playwright的网页爬虫OpenClaw技能,具备反机器人保护功能。根据目标网站的反机器人级别选择最佳方法。


🎯 Use Case Matrix | 用例矩阵

目标网站反机器人级别推荐方法脚本
常规网站Lowweb_fetch 工具N/A(内置)
动态网站MediumPlaywright Simplescripts/playwright-simple.js
Cloudflare 保护HighPlaywright Stealthscripts/playwright-stealth.js
YouTubeSpecialdeep-scraper单独安装
RedditSpecialreddit-scraper单独安装

📦 Installation 安装

cd playwright-scraper-skill
npm install
npx playwright install chromium

🚀 Quick Start 快速开始

1️⃣ 简单网站(无反机器人)

使用 OpenClaw 内置的 web_fetch 工具:

# 在 OpenClaw 中直接调用
Hey, fetch me the content from https://example.com

2️⃣ 动态网站(需要 JavaScript)

使用 Playwright Simple

node scripts/playwright-simple.js "https://example.com"

示例输出:

{
  "url": "https://example.com",
  "title": "Example Domain",
  "content": "...",
  "elapsedSeconds": "3.45"
}

3️⃣ 反机器人保护网站(Cloudflare 等)

使用 Playwright Stealth

node scripts/playwright-stealth.js "https://m.discuss.com.hk/#hot"

功能特点:

  • 隐藏自动化标记(navigator.webdriver = false
  • 真实的 User-Agent(iPhone、Android)
  • 随机延迟模拟人类行为
  • 截图和 HTML 保存支持

4️⃣ YouTube 视频字幕

使用 deep-scraper(单独安装):

# 安装 deep-scraper 技能
npx clawhub install deep-scraper

# 使用它 cd skills/deep-scraper node assets/youtube_handler.js "https://www.youtube.com/watch?v=VIDEO_ID"


📖 Script Descriptions 脚本说明

scripts/playwright-simple.js

  • 用例: 常规动态网站
  • 速度: 快速(3-5秒)
  • 反机器人:
  • 输出: JSON(title、content、URL)

scripts/playwright-stealth.js

  • 用例: 有 Cloudflare 或反机器人保护的网站
  • 速度: 中等(5-20秒)
  • 反机器人: 中高(隐藏自动化、真实UA)
  • 输出: JSON + 截图 + HTML 文件
  • 验证: Discuss.com.hk 上 100% 成功

🎓 Best Practices 最佳实践

1. 首先尝试 web_fetch

如果网站没有动态加载,使用 OpenClaw 的 web_fetch 工具——它最快。

2. 需要 JavaScript?使用 Playwright Simple

如果需要等待 JavaScript 渲染,使用 playwright-simple.js

3. 被阻止?使用 Stealth

如果遇到 403 或 Cloudflare 挑战,使用 playwright-stealth.js

4. 特殊网站需要专业技能

  • YouTube → deep-scraper
  • Reddit → reddit-scraper
  • Twitter → bird skill

🔧 Customization 自定义

所有脚本都支持环境变量:

# 设置截图路径
SCREENSHOT_PATH=/path/to/screenshot.png node scripts/playwright-stealth.js URL

# 设置等待时间(毫秒) WAIT_TIME=10000 node scripts/playwright-simple.js URL

# 启用有头模式(显示浏览器) HEADLESS=false node scripts/playwright-stealth.js URL

# 保存 HTML SAVE_HTML=true node scripts/playwright-stealth.js URL

# 自定义 User-Agent USER_AGENT="Mozilla/5.0 ..." node scripts/playwright-stealth.js URL


📊 Performance Comparison 性能对比

方法速度反机器人成功率(Discuss.com.hk)
web_fetch⚡ 最快❌ 无0%
Playwright Simple🚀 快速⚠️ 低20%
Playwright Stealth⏱️ 中等✅ 中等100%
Puppeteer Stealth⏱️ 中等✅ 中高~80%
Crawlee (deep-scraper)🐢 慢❌ 被检测0%
Chaser (Rust)⏱️ 中等❌ 被检测0%

🛡️ Anti-Bot Techniques Summary 反机器人技术总结

从测试中吸取的经验教训:

✅ 有效的反机器人措施

  • 隐藏 navigator.webdriver — 必要
  • 真实的 User-Agent — 使用真实设备(iPhone、Android)
  • 模拟人类行为 — 随机延迟、滚动
  • 避免框架签名 — Crawlee、Selenium 容易被检测
  • 使用 addInitScript (Playwright) — 页面加载前注入

❌ 无效的反机器人措施

  • 仅更改 User-Agent — 不够
  • 使用高级框架(Crawlee) — 更容易被检测
  • Docker 隔离 — 对 Cloudflare 无帮助

🔍 Troubleshooting 故障排除

问题:403 Forbidden 禁止访问

解决方案: 使用 playwright-stealth.js

问题:Cloudflare 挑战页面

解决方案:

  • 增加等待时间(10-15秒)
  • 尝试 headless: false(有头模式有时成功率更高)
  • 考虑使用代理 IP

问题:空白页面

解决方案:

  • 增加 waitForTimeout
  • 使用 waitUntil: 'networkidle''domcontentloaded'
  • 检查是否需要登录

📝 Memory & Experience 经验与记忆

2026-02-07 Discuss.com.hk 测试结论

  • 纯 Playwright + Stealth 成功(5秒,200 OK)
  • ❌ Crawlee (deep-scraper) 失败(403)
  • ❌ Chaser (Rust) 失败(Cloudflare)
  • ❌ Puppeteer 标准版失败(403)

最佳解决方案: 纯 Playwright + 反机器人技术(独立于框架)


🚧 Future Improvements 未来改进

  • [ ] 添加代理 IP 轮换
  • [ ] 实现 cookie 管理(维持登录状态)
  • [ ] 添加 CAPTCHA 处理(2captcha / Anti-Captcha)
  • [ ] 批量爬取(并行 URL)
  • [ ] 与 OpenClaw 的 browser 工具集成

📚 References 参考资料

数据来源ClawHub ↗ · 中文优化:龙虾技能库