mcpField
P
playwright-scraper-skill

playwright-scraper-skill

github.com/csy12138da数据与数据库265 次安装33 周前更新
代码仓库

关于 playwright-scraper-skill

playwright-scraper-skill 是基于 Playwright 的网页抓取技能,涵盖静态网页、动态网页和有反爬保护的网站。它提供普通与隐身脚本,并支持配置等待时间及浏览器输出选项。

主要功能

  1. 01按网站防护程度选择方法
  2. 02用于动态网页的 Playwright 脚本
  3. 03针对受保护网站的隐身措施
  4. 04输出 JSON、截图和 HTML
  5. 05通过环境变量配置脚本

适用场景

  1. 01提取 JavaScript 驱动网页的内容
  2. 02抓取带有 Cloudflare 挑战的页面
  3. 03保存页面截图和 HTML
  4. 04调整等待时间或浏览器显示方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/csy12138da/playwright-scraper-skill --skill playwright-scraper-skill

安装后在 Claude Code 中输入/playwright-scraper-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
package.json
scripts/
playwright-simple.js
playwright-stealth.js

详细介绍

Playwright 抓取技能

基于 Playwright 的网页抓取技能,具备反爬虫保护功能。根据目标网站的反爬虫级别选择最佳方案。


🎯 使用场景矩阵

目标网站反爬虫级别推荐方法脚本
普通网站低web_fetch 工具不适用(内置)
动态网站中Playwright Simplescripts/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

🛡️ 反爬虫技术总结

✅ 有效的反爬虫措施
  1. 隐藏 navigator.webdriver — 必不可少
  2. 逼真的 User-Agent — 使用真实设备(iPhone、Android)
  3. 模拟人类行为 — 随机延迟、滚动页面
  4. 避免框架特征 — Crawlee、Selenium 很容易被检测到
  5. 使用 addInitScript(Playwright) — 在页面加载前注入
❌ 无效的反爬虫措施
  1. 只更改 User-Agent — 不够
  2. 使用高层框架(Crawlee) — 更容易被检测到
  3. Docker 隔离 — 对付 Cloudflare 没有帮助

🔍 故障排除

问题:403 Forbidden

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

问题:Cloudflare 验证页面

解决方案:

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

📚 参考资料

评论

支持 Markdown