🛠️ GO Playwright
Go言語とPlaywrightを組み合わせ、ウェブブラウザの
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.
🇯🇵 日本人クリエイター向け解説
Go言語とPlaywrightを組み合わせ、ウェブブラウザの
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o go-playwright.zip https://jpskill.com/download/2938.zip && unzip -o go-playwright.zip && rm go-playwright.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/2938.zip -OutFile "$d\go-playwright.zip"; Expand-Archive "$d\go-playwright.zip" -DestinationPath $d -Force; ri "$d\go-playwright.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
go-playwright.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
go-playwrightフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Go Playwright を使って、最小構成のサンプルコードを示して
- › Go Playwright の主な使い方と注意点を教えて
- › Go Playwright を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Playwright Go 自動化エキスパート
概要
このスキルは、github.com/playwright-community/playwright-go を使用して、高性能でプロダクションレベルのブラウザ自動化スクリプトを作成するための包括的なフレームワークを提供します。アーキテクチャのベストプラクティス(インスタンスではなくコンテキスト)、堅牢なエラー処理、構造化されたロギング(Zap)、およびアンチボットシステムを回避するための高度な人間エミュレーション技術を強制します。
このスキルを使用するタイミング
- ユーザーが Go を使用してウェブサイトを「スクレイピング」、「自動化」、または「テスト」するよう求めた場合に使用します。
- ターゲットサイトが、実際のブラウザを必要とする複雑な動的コンテンツ(SPA、React、Vue)を持っている場合に使用します。
- ユーザーが「ステルス」、「検出回避」、「Cloudflare」、または「人間のような」振る舞いについて言及した場合に使用します。
- 既存の Playwright スクリプトをデバッグする場合に使用します。
安全性とリスク
リスクレベル: 🔵 安全
- サンドボックス実行: ブラウザコンテキストは隔離されており、明示的に保存されない限り、ホストマシンにデータを永続化しません。
- リソース管理: メモリリークを防ぐため、
deferを介してブラウザとコンテキストを閉じるように設計されています。 - 外部状態変更なし: スクリプトがフォームの送信やデータの変更を明示的に設計されていない限り、デフォルトの動作は読み取り専用(スクレイピング/テスト)です。
制限事項
- 環境依存性: Playwright ドライバーとブラウザのインストールが必要です(
go run github.com/playwright-community/playwright-go/cmd/playwright@latest install --with-deps)。 - リソース集約型: フルブラウザインスタンス(ヘッドレスであっても)の起動は、かなりの RAM/CPU を消費します。単一ブラウザ/複数コンテキストアーキテクチャを使用してください。
- ボット検出: このスキルにはステルス技術が含まれていますが、非常に厳格なアンチボットシステム(例: 厳格な Cloudflare 設定)では、自動化が検出される可能性があります。
- CAPTCHA: CAPTCHA 解決機能は組み込まれていません。
戦略的実装ガイドライン
1. アーキテクチャ: コンテキスト vs. ブラウザ
重要: タスクごとに新しい Browser インスタンスを起動しないでください。
- パターン:
Browserを 一度だけ 起動します(シングルトン)。セッションまたはタスクごとに新しいBrowserContextを作成します。 - 理由: コンテキストは軽量で、ミリ秒単位で作成されます。ブラウザは起動に数秒かかります。
- 隔離: コンテキストは、新しいプロセスのオーバーヘッドなしに、完全な隔離(クッキー、キャッシュ、ストレージ)を提供します。
2. ロギングと可観測性
- ライブラリ:
go.uber.org/zapのみを使用します。 - ルール:
fmt.Printlnは使用しないでください。 - モード:
- 開発:
zap.NewDevelopment()(コンソールフレンドリー) - 本番:
zap.NewProduction()(JSON 構造化)
- 開発:
- トレーサビリティ: すべてのナビゲーション、クリック、入力をコンテキストフィールド(例:
logger.Info("clicking button", zap.String("selector", sel)))とともにログに記録します。
3. エラー処理と安定性
- グレースフルシャットダウン: 常に
deferを使用してページ、コンテキスト、ブラウザを閉じます。 - パニックリカバリ: 重要な自動化ルーチンを、パニックを回復しスタックトレースをログに記録する安全なランナーでラップします。
- タイムアウト: デフォルトのタイムアウトに依存しないでください。明示的なタイムアウトを設定します(例:
playwright.PageClickOptions{Timeout: playwright.Float(5000)})。
4. ステルスと人間のような振る舞い
アンチボットシステム(Cloudflare、Akamai)を回避するには、生成されたコードが人間の生理を模倣する必要があります。
- 非線形マウス移動: マウスをテレポートさせないでください。ランダムなジッターを伴うベジェ曲線に沿ってマウスを移動させるヘルパーを実装します。
- 入力遅延:
Fill()は絶対に使用しないでください。キーストローク間にランダムな遅延(50ms~200ms)を伴うType()を使用します。 - ビューポートのランダム化: フィンガープリンティングを避けるため、ビューポートサイズをわずかにランダム化します(例: 1920x1080 ± 15px)。
- 行動ノイズ: 長い待機中に、ランダムにスクロールしたり、ウィンドウをフォーカス/アンフォーカスしたり、無関係な要素にホバーしたり(「アイドル状態」)します。
- ユーザーエージェント: 新しいコンテキストごとにユーザーエージェントをローテーションします。
5. ドキュメントの使用法
- 主要な情報源: トークンを節約するため、まず API の内部知識に頼ります。
- フォールバック: 公式ドキュメント playwright-go documentation は、次の場合にのみ参照してください。
- 未知のエラーに遭遇した場合。
- 複雑なネットワークインターセプトや認証フローを実装する必要がある場合。
- API が大幅に変更された場合。
リソース
- 詳細なコード例と実装パターンについては、
resources/implementation-playbook.mdを参照してください。
エージェント向け要約チェックリスト
- デバッグモードはオンですか? ->
Headless=false、SlowMo=100+。 - 新しいユーザーIDですか? ->
NewContext、新しいプロキシを適用、User-Agentをローテーション。 - アクションは重要ですか? -> Zap ロギング付きの
SafeActionでラップします。 - ターゲットは保護されていますか(Cloudflare/Akamai)? ->
HumanType、BezierMouse、およびステルススクリプトを有効にします。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Playwright Go Automation Expert
Overview
This skill provides a comprehensive framework for writing high-performance, production-grade browser automation scripts using github.com/playwright-community/playwright-go. It enforces architectural best practices (contexts over instances), robust error handling, structured logging (Zap), and advanced human-emulation techniques to bypass anti-bot systems.
When to Use This Skill
- Use when the user asks to "scrape," "automate," or "test" a website using Go.
- Use when the target site has complex dynamic content (SPA, React, Vue) requiring a real browser.
- Use when the user mentions "stealth," "avoiding detection," "cloudflare," or "human-like" behavior.
- Use when debugging existing Playwright scripts.
Safety & Risk
Risk Level: 🔵 Safe
- Sandboxed Execution: Browser contexts are isolated; they do not persist data to the host machine unless explicitly saved.
- Resource Management: Designed to close browsers and contexts via
deferto prevent memory leaks. - No External State-Change: Default behavior is read-only (scraping/testing) unless the script is explicitly designed to submit forms or modify data.
Limitations
- Environment Dependencies: Requires Playwright drivers and browsers to be installed (
go run github.com/playwright-community/playwright-go/cmd/playwright@latest install --with-deps). - Resource Intensity: Launching full browser instances (even headless) consumes significant RAM/CPU. Use single-browser/multi-context architecture.
- Bot Detection: While this skill includes stealth techniques, extremely strict anti-bot systems (e.g., rigorous Cloudflare settings) may still detect automation.
- CAPTCHAs: Does not include built-in CAPTCHA solving capabilities.
Strategic Implementation Guidelines
1. Architecture: Contexts vs. Browsers
CRITICAL: Never launch a new Browser instance for every task.
- Pattern: Launch the
Browseronce (singleton). Create a newBrowserContextfor each distinct session or task. - Why: Contexts are lightweight and created in milliseconds. Browsers take seconds to launch.
- Isolation: Contexts provide complete isolation (cookies, cache, storage) without the overhead of a new process.
2. Logging & Observability
- Library: Use
go.uber.org/zapexclusively. - Rule: Do not use
fmt.Println. - Modes:
- Dev:
zap.NewDevelopment()(Console friendly) - Prod:
zap.NewProduction()(JSON structured)
- Dev:
- Traceability: Log every navigation, click, and input with context fields (e.g.,
logger.Info("clicking button", zap.String("selector", sel))).
3. Error Handling & Stability
- Graceful Shutdown: Always use
deferto close Pages, Contexts, and Browsers. - Panic Recovery: Wrap critical automation routines in a safe runner that recovers panics and logs the stack trace.
- Timeouts: Never rely on default timeouts. Set explicit timeouts (e.g.,
playwright.PageClickOptions{Timeout: playwright.Float(5000)}).
4. Stealth & Human-Like Behavior
To bypass anti-bot systems (Cloudflare, Akamai), the generated code must imitate human physiology:
- Non-Linear Mouse Movement: Never teleport the mouse. Implement a helper that moves the mouse along a Bezier curve with random jitter.
- Input Latency: never use
Fill(). UseType()with random delays between keystrokes (50ms–200ms). - Viewport Randomization: Randomize the viewport size slightly (e.g., 1920x1080 ± 15px) to avoid fingerprinting.
- Behavioral Noise: Randomly scroll, focus/unfocus the window, or hover over irrelevant elements ("idling") during long waits.
- User-Agent: Rotate User-Agents for every new Context.
5. Documentation Usage
- Primary Source: Rely on your internal knowledge of the API first to save tokens.
- Fallback: Refer to the official docs playwright-go documentation ONLY if:
- You encounter an unknown error.
- You need to implement complex network interception or authentication flows.
- The API has changed significantly.
Resources
resources/implementation-playbook.mdfor detailed code examples and implementation patterns.
Summary Checklist for Agent
- Is Debug Mode on? ->
Headless=false,SlowMo=100+. - Is it a new user identity? ->
NewContext, apply new Proxy, rotateUser-Agent. - Is the action critical? -> Wrap in
SafeActionwith Zap logging. - Is the target guarded (Cloudflare/Akamai)? -> Enable
HumanType,BezierMouse, and Stealth Scripts.