mcpField
P
playwright-scraper-skill

playwright-scraper-skill

github.com/csy12138daデータ・データベース265 回インストール33 週間前に更新
リポジトリ

playwright-scraper-skill について

playwright-scraper-skillは、静的ページからJavaScriptを使うページ、ボット対策のあるサイトまで扱うPlaywrightベースのスクレイピングスキルです。通常用とステルス用のスクリプトがあり、待機時間やブラウザー出力を設定できます。

主な機能

  1. 01サイトの保護レベルに応じた方式選択
  2. 02動的ページ向けPlaywrightスクリプト
  3. 03保護サイト向けステルス対策
  4. 04JSON、スクリーンショット、HTML出力
  5. 05環境変数によるスクリプト設定

活用シーン

  1. 01JavaScriptで動くページの内容取得
  2. 02Cloudflareのチャレンジがあるページのスクレイピング
  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 ツールN/A(組み込み)
動的なサイト中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 の使用を検討します

📚 参考資料

コメント