jpskill.com
📦 その他 コミュニティ

web-scrape

指定されたウェブサイトから必要な情報を抽出し、様々な形式で出力、エラーにも対応できる、効率的な情報収集をサポートするSkill。

📜 元の英語説明(参考)

Intelligent web scraper with content extraction, multiple output formats, and error handling

🇯🇵 日本人クリエイター向け解説

一言でいうと

指定されたウェブサイトから必要な情報を抽出し、様々な形式で出力、エラーにも対応できる、効率的な情報収集をサポートするSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o web-scrape.zip https://jpskill.com/download/16693.zip && unzip -o web-scrape.zip && rm web-scrape.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16693.zip -OutFile "$d\web-scrape.zip"; Expand-Archive "$d\web-scrape.zip" -DestinationPath $d -Force; ri "$d\web-scrape.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して web-scrape.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → web-scrape フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
2

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Web Scraping Skill v3.0

使い方

/web-scrape <url> [options]

オプション:

  • --format=markdown|json|text - 出力形式 (デフォルト: markdown)
  • --full - ページ全体のコンテンツを含める (スマート抽出をスキップ)
  • --screenshot - スクリーンショットも保存
  • --scroll - 動的なコンテンツをロードするためにスクロールする (無限スクロールページ)

例:

/web-scrape https://example.com/article
/web-scrape https://news.site.com/story --format=json
/web-scrape https://spa-app.com/page --scroll --screenshot

実行フロー

フェーズ 1: ナビゲートとロード

1. mcp__playwright__browser_navigate
   url: "<target URL>"

2. mcp__playwright__browser_wait_for
   time: 2  (初期レンダリングを許可)

--scroll オプションの場合: レイジーローディングをトリガーするためにスクロールシーケンスを実行します:

3. mcp__playwright__browser_evaluate
   function: "async () => {
     for (let i = 0; i < 3; i++) {
       window.scrollTo(0, document.body.scrollHeight);
       await new Promise(r => setTimeout(r, 1000));
     }
     window.scrollTo(0, 0);
   }"

フェーズ 2: コンテンツのキャプチャ

4. mcp__playwright__browser_snapshot
   → すべてのテキストコンテンツを含む完全なアクセシビリティツリーを返します

--screenshot オプションの場合:

5. mcp__playwright__browser_take_screenshot
   filename: "scraped_<domain>_<timestamp>.png"
   fullPage: true

フェーズ 3: ブラウザを閉じる

6. mcp__playwright__browser_close

スマートコンテンツ抽出

スナップショットを取得した後、インテリジェントな抽出を適用します:

ステップ 1: コンテンツタイプの特定

ページタイプ 指標 抽出戦略
記事/ブログ <article>、長い段落、日付/著者 メインの記事本文を抽出
製品ページ 価格、"Add to Cart"、仕様 タイトル、価格、説明、仕様を抽出
ドキュメント コードブロック、見出しの階層 構造とコードを保持
リスト/検索 繰り返されるアイテムパターン 構造化されたリストとして抽出
ランディングページ ヒーローセクション、CTA 主要なメッセージングを抽出

ステップ 2: ノイズのフィルタリング

常に以下の要素を出力から削除します:

  • ナビゲーションメニューとパンくずリスト
  • フッターコンテンツ (著作権、リンク)
  • サイドバー (広告、関連記事、ソーシャルリンク)
  • Cookie バナーとポップアップ
  • コメントセクション (特に要求されない限り)
  • 共有ボタンとソーシャルウィジェット
  • ログイン/サインアッププロンプト

ステップ 3: コンテンツの構造化

記事の場合:

# [タイトル]

**ソース:** [URL]
**日付:** [利用可能な場合]
**著者:** [利用可能な場合]

---

[クリーンな Markdown でのメインコンテンツ]

製品ページの場合:

# [製品名]

**価格:** [価格]
**在庫状況:** [在庫あり/在庫切れ]

## 説明
[製品説明]

## 仕様
| 仕様 | 値 |
|------|-------|
| ... | ... |

出力形式

Markdown (デフォルト)

適切な見出し、リスト、および書式設定を備えた、クリーンで読みやすい Markdown。

JSON

{
  "url": "https://...",
  "title": "Page Title",
  "type": "article|product|docs|list",
  "content": {
    "main": "...",
    "metadata": {}
  },
  "extracted_at": "ISO timestamp"
}

Text

最小限の書式設定のプレーンテキスト。さらなる処理に適しています。


エラー処理

ナビゲーションエラー

エラー 検出 アクション
タイムアウト ページが 30 秒でロードされない エラーを報告し、再試行を提案
404 Not Found タイトル/コンテンツに "404" がある "ページが見つかりません" を報告
403 Forbidden "403"、"Access Denied" アクセス制限を報告
CAPTCHA "captcha"、"verify you're human" CAPTCHA が検出されたことを報告し、続行できない
ペイウォール "subscribe"、"premium content" 表示可能なコンテンツを抽出し、ペイウォールをメモ

リカバリーアクション

ページロードが失敗した場合:
1. 特定のエラーをユーザーに報告
2. 以下を提案: "再試行しますか?" または "別の URL を試しますか?"
3. ブラウザをきれいに閉じる

コンテンツがブロックされている場合:
1. 検出された内容 (CAPTCHA/ペイウォール/地域ブロック) を報告
2. 利用可能なプレビューコンテンツを抽出
3. 該当する場合は代替案を提案

高度なシナリオ

シングルページアプリケーション (SPA)

1. URL に移動
2. JS ハイドレーションのために長く待つ (3〜5 秒)
3. 特定のテキストがわかっている場合は、browser_wait_for を使用
4. その後、スナップショット

無限スクロールページ

1. ナビゲート
2. スクロールループを実行 (フェーズ 1 を参照)
3. スクロール完了後にスナップショット

クリックしてコンテンツを表示するページ

1. 最初にスナップショットを撮り、クリック可能な要素を特定
2. "Read more" / "Show all" ボタンで browser_click を使用
3. 少し待つ
4. 完全なコンテンツのために再度スナップショット

複数ページのアーティクル

1. 最初のページをスクレイピング
2. "Next" またはページネーションリンクを特定
3. ユーザーに質問: "記事には X ページあります。すべてスクレイピングしますか?"
4. はいの場合、ページを反復処理して結合

パフォーマンスガイドライン

メトリクス 目標 方法
速度 < 15 秒 最小限の待機、可能な場合は並列処理
トークン使用量 < 5000 トークン スマート抽出、フル DOM ではない
信頼性 > 95% 成功 適切なエラー処理

セキュリティに関する注意

  • ページから任意の JavaScript を実行しないでください
  • 不審なドメインへのリダイレクトに従わないでください
  • フォームを送信したり、ログインボタンをクリックしたりしないでください
  • 認証が必要なページをスクレイピングしないでください (ユーザーが認証情報フローを提供しない限り)
  • ユーザーによって言及された場合は、robots.txt を尊重してください

クイックリファレンス

最小限の実行可能なスクレイピング (4 つのツール呼び出し):

1. browser_navigate → 2. browser_wait_for → 3. browser_snapshot → 4. browser_close

フル機能のスクレイピング (スクロール + スクリーンショット付き):

1. browser_navigate
2. browser_wait_for
3. browser_evaluate (スクロール)
4. browser_snapshot
5. browser_take_screenshot
6. browser_close

覚えておいてください: 目標は、生の HTML/DOM ダンプではなく、クリーンで役立つコンテンツをユーザーに提供することです。

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Web Scraping Skill v3.0

Usage

/web-scrape <url> [options]

Options:

  • --format=markdown|json|text - Output format (default: markdown)
  • --full - Include full page content (skip smart extraction)
  • --screenshot - Also save a screenshot
  • --scroll - Scroll to load dynamic content (infinite scroll pages)

Examples:

/web-scrape https://example.com/article
/web-scrape https://news.site.com/story --format=json
/web-scrape https://spa-app.com/page --scroll --screenshot

Execution Flow

Phase 1: Navigate and Load

1. mcp__playwright__browser_navigate
   url: "<target URL>"

2. mcp__playwright__browser_wait_for
   time: 2  (allow initial render)

If --scroll option: Execute scroll sequence to trigger lazy loading:

3. mcp__playwright__browser_evaluate
   function: "async () => {
     for (let i = 0; i < 3; i++) {
       window.scrollTo(0, document.body.scrollHeight);
       await new Promise(r => setTimeout(r, 1000));
     }
     window.scrollTo(0, 0);
   }"

Phase 2: Capture Content

4. mcp__playwright__browser_snapshot
   → Returns full accessibility tree with all text content

If --screenshot option:

5. mcp__playwright__browser_take_screenshot
   filename: "scraped_<domain>_<timestamp>.png"
   fullPage: true

Phase 3: Close Browser

6. mcp__playwright__browser_close

Smart Content Extraction

After getting the snapshot, apply intelligent extraction:

Step 1: Identify Content Type

Page Type Indicators Extraction Strategy
Article/Blog <article>, long paragraphs, date/author Extract main article body
Product Page Price, "Add to Cart", specs Extract title, price, description, specs
Documentation Code blocks, headings hierarchy Preserve structure and code
List/Search Repeated item patterns Extract as structured list
Landing Page Hero section, CTAs Extract key messaging

Step 2: Filter Noise

ALWAYS REMOVE these elements from output:

  • Navigation menus and breadcrumbs
  • Footer content (copyright, links)
  • Sidebars (ads, related articles, social links)
  • Cookie banners and popups
  • Comments section (unless specifically requested)
  • Share buttons and social widgets
  • Login/signup prompts

Step 3: Structure the Content

For Articles:

# [Title]

**Source:** [URL]
**Date:** [if available]
**Author:** [if available]

---

[Main content in clean markdown]

For Product Pages:

# [Product Name]

**Price:** [price]
**Availability:** [in stock/out of stock]

## Description
[product description]

## Specifications
| Spec | Value |
|------|-------|
| ... | ... |

Output Formats

Markdown (default)

Clean, readable markdown with proper headings, lists, and formatting.

JSON

{
  "url": "https://...",
  "title": "Page Title",
  "type": "article|product|docs|list",
  "content": {
    "main": "...",
    "metadata": {}
  },
  "extracted_at": "ISO timestamp"
}

Text

Plain text with minimal formatting, suitable for further processing.


Error Handling

Navigation Errors

Error Detection Action
Timeout Page doesn't load in 30s Report error, suggest retry
404 Not Found "404" in title/content Report "Page not found"
403 Forbidden "403", "Access Denied" Report access restriction
CAPTCHA "captcha", "verify you're human" Report CAPTCHA detected, cannot proceed
Paywall "subscribe", "premium content" Extract visible content, note paywall

Recovery Actions

If page load fails:
1. Report the specific error to user
2. Suggest: "Try again?" or "Different URL?"
3. Close browser cleanly

If content is blocked:
1. Report what was detected (CAPTCHA/paywall/geo-block)
2. Extract any available preview content
3. Suggest alternatives if applicable

Advanced Scenarios

Single Page Applications (SPA)

1. Navigate to URL
2. Wait longer (3-5 seconds) for JS hydration
3. Use browser_wait_for with specific text if known
4. Then snapshot

Infinite Scroll Pages

1. Navigate
2. Execute scroll loop (see Phase 1)
3. Snapshot after scrolling completes

Pages with Click-to-Reveal Content

1. Snapshot first to identify clickable elements
2. Use browser_click on "Read more" / "Show all" buttons
3. Wait briefly
4. Snapshot again for full content

Multi-page Articles

1. Scrape first page
2. Identify "Next" or pagination links
3. Ask user: "Article has X pages. Scrape all?"
4. If yes, iterate through pages and combine

Performance Guidelines

Metric Target How
Speed < 15 seconds Minimal waits, parallel where possible
Token Usage < 5000 tokens Smart extraction, not full DOM
Reliability > 95% success Proper error handling

Security Notes

  • Never execute arbitrary JavaScript from the page
  • Don't follow redirects to suspicious domains
  • Don't submit forms or click login buttons
  • Don't scrape pages that require authentication (unless user provides credentials flow)
  • Respect robots.txt when mentioned by user

Quick Reference

Minimum viable scrape (4 tool calls):

1. browser_navigate → 2. browser_wait_for → 3. browser_snapshot → 4. browser_close

Full-featured scrape (with scroll + screenshot):

1. browser_navigate
2. browser_wait_for
3. browser_evaluate (scroll)
4. browser_snapshot
5. browser_take_screenshot
6. browser_close

Remember: The goal is to deliver clean, useful content to the user, not raw HTML/DOM dumps.

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。