关于 playwright-scraper-skill
playwright-scraper-skill 是基于 Playwright 的网页抓取技能,涵盖静态网页、动态网页和有反爬保护的网站。它提供普通与隐身脚本,并支持配置等待时间及浏览器输出选项。
主要功能
- 01按网站防护程度选择方法
- 02用于动态网页的 Playwright 脚本
- 03针对受保护网站的隐身措施
- 04输出 JSON、截图和 HTML
- 05通过环境变量配置脚本
适用场景
- 01提取 JavaScript 驱动网页的内容
- 02抓取带有 Cloudflare 挑战的页面
- 03保存页面截图和 HTML
- 04调整等待时间或浏览器显示方式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ csy12138da/ playwright-scraper-skill --skill playwright-scraper-skill安装后在 Claude Code 中输入/playwright-scraper-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdpackage.jsonscripts/playwright-simple.jsplaywright-stealth.js详细介绍
Playwright 抓取技能
基于 Playwright 的网页抓取技能,具备反爬虫保护功能。根据目标网站的反爬虫级别选择最佳方案。
🎯 使用场景矩阵
| 目标网站 | 反爬虫级别 | 推荐方法 | 脚本 |
|---|---|---|---|
| 普通网站 | 低 | web_fetch 工具 | 不适用(内置) |
| 动态网站 | 中 | Playwright Simple | scripts/playwright-simple.js |
| Cloudflare 保护的网站 | 高 | Playwright Stealth ⭐ | scripts/playwright-stealth.js |
📦 安装
cd playwright-scraper-skill
npm install
npx playwright install chromium
🚀 快速开始
1️⃣ 普通网站(无反爬虫机制)
对静态网站使用内置的 web_fetch 工具。
2️⃣ 动态网站(需要 JavaScript)
使用 Playwright Simple:
node scripts/playwright-simple.js "https://example.com"
3️⃣ 有反爬虫保护的网站(如 Cloudflare)
使用 Playwright Stealth:
node scripts/playwright-stealth.js "https://m.discuss.com.hk/#hot"
功能:
- 隐藏自动化标记(
navigator.webdriver = false) - 逼真的 User-Agent(iPhone、Android)
- 随机延迟,模拟人类行为
- 支持保存截图和 HTML
📖 脚本说明
scripts/playwright-simple.js
- 使用场景: 普通动态网站
- 速度: 快(3-5 秒)
- 反爬虫: 无
- 输出: JSON(标题、内容、URL)
scripts/playwright-stealth.js ⭐
- 使用场景: 使用 Cloudflare 或其他反爬虫保护的网站
- 速度: 中等(5-20 秒)
- 反爬虫: 中高(隐藏自动化特征、逼真的 UA)
- 输出: JSON + 截图 + HTML 文件
- 已验证: 在 Discuss.com.hk 上成功率为 100%
🔧 自定义
所有脚本都支持环境变量:
# Set screenshot path
SCREENSHOT_PATH=/path/to/screenshot.png node scripts/playwright-stealth.js URL
# Set wait time (milliseconds)
WAIT_TIME=10000 node scripts/playwright-simple.js URL
# Enable headful mode (show browser)
HEADLESS=false node scripts/playwright-stealth.js URL
# Save HTML
SAVE_HTML=true node scripts/playwright-stealth.js URL
# Custom User-Agent
USER_AGENT="Mozilla/5.0 ..." node scripts/playwright-stealth.js URL
🛡️ 反爬虫技术总结
✅ 有效的反爬虫措施
- 隐藏
navigator.webdriver— 必不可少 - 逼真的 User-Agent — 使用真实设备(iPhone、Android)
- 模拟人类行为 — 随机延迟、滚动页面
- 避免框架特征 — Crawlee、Selenium 很容易被检测到
- 使用
addInitScript(Playwright) — 在页面加载前注入
❌ 无效的反爬虫措施
- 只更改 User-Agent — 不够
- 使用高层框架(Crawlee) — 更容易被检测到
- Docker 隔离 — 对付 Cloudflare 没有帮助
🔍 故障排除
问题:403 Forbidden
解决方案: 使用 playwright-stealth.js
问题:Cloudflare 验证页面
解决方案:
- 增加等待时间(10-15 秒)
- 尝试
headless: false(有头模式有时成功率更高) - 考虑使用代理 IP
📚 参考资料
评论
支持 Markdown