mcpField
W
web-content-fetcher

web-content-fetcher

github.com/shirenchuang生産性6113.0k 回インストール31 週間前に更新
リポジトリ

web-content-fetcher について

URLのページ本文を、文書構造を保ったMarkdownとして取得するスキルです。サイトの特性に応じてScraplingの高速またはステルスモードを選び、必要に応じてJina Readerを使います。

主な機能

  1. 01ページ本文をMarkdownで抽出
  2. 02高速またはステルス取得を選択
  3. 03ドメインごとに取得モードを選択
  4. 04出力文字数を制限
  5. 05代替手段としてJina Readerを使用
  6. 06失敗後の再試行を停止

活用シーン

  1. 01記事URLをMarkdownに変換
  2. 02JavaScript描画ページを取得
  3. 03コンテキスト用に抽出テキストを制限

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/shirenchuang/web-content-fetcher --skill web-content-fetcher

インストール後、Claude Code で/web-content-fetcherを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
requirements.txt
README.md
scripts/
fetch.py

詳細

Web コンテンツフェッチャー

URL を指定すると、見出し、リンク、画像、リスト、コードブロックをすべて保持した、整った Markdown として本文を返します。

抽出方法

URL ごとに必ず1つの方法だけを試してください。手当たり次第に切り替えないでください。最初に適切な方法を選びます。

URL
 │
 ├─ 1. Scrapling script (preferred)
 │     Run fetch.py — check the domain routing table to decide fast vs --stealth.
 │     Works for most sites. Returns clean Markdown directly.
 │
 └─ 2. Jina Reader (fallback — only if Scrapling fails or dependencies not installed)
       web_fetch("https://r.jina.ai/<url>")
       Free tier: 200 req/day. Fast (~1-2s), good Markdown output.
       Does NOT work for: WeChat (403), some Chinese platforms.
Scrapling スクリプト
python3 <SKILL_DIR>/scripts/fetch.py "<url>" [max_chars] [--stealth]

<SKILL_DIR> は、この SKILL.md があるディレクトリです。スクリプトを呼び出す前に、ディレクトリを解決してください。

スクリプトには、次の2つのモードが組み込まれています。

  • デフォルト(高速): HTTP フェッチ。約1~3秒で、ほとんどのサイトで動作します
  • --stealth: ヘッドレスブラウザー。約5~15秒で、JavaScript によって描画されるサイトやスクレイピング対策のあるサイトに適しています

--stealth を指定せずに実行した場合、高速モードの結果に含まれるコンテンツが少なすぎると、スクリプトは自動的にステルスモードに切り替えます。そのため、通常は手動で --stealth を指定する必要はありません。強制的に指定するのは、そのサイトでステルスモードが必要だと事前にわかっている場合(ルーティング表を参照)だけです。これにより、最初の高速モードの試行を省けます。

ドメインのルーティング

初回の呼び出しで適切なモードを選ぶには、この表を使用してください。

ドメインコマンド理由
mp.weixin.qq.comfetch.py <url> --stealthJavaScript によって描画されるコンテンツ
zhuanlan.zhihu.comfetch.py <url> --stealthスクレイピング対策と JavaScript
juejin.cnfetch.py <url> --stealthJavaScript によって描画される SPA
sspai.comfetch.py <url>静的 HTML
blog.csdn.netfetch.py <url>静的 HTML
ruanyifeng.comfetch.py <url>静的ブログ
openai.comfetch.py <url>静的 HTML
blog.googlefetch.py <url>静的 HTML
その他すべてfetch.py <url>自動フォールバックで対応します

スクリプトのオプション

# Basic — auto-selects fast or stealth
python3 <SKILL_DIR>/scripts/fetch.py "https://sspai.com/post/73145"

# Force stealth for known JS-heavy sites
python3 <SKILL_DIR>/scripts/fetch.py "https://mp.weixin.qq.com/s/xxx" --stealth

# Limit output to 15000 characters (default: 30000)
python3 <SKILL_DIR>/scripts/fetch.py "https://example.com/article" 15000

# JSON output with metadata (url, mode, selector, content_length)
python3 <SKILL_DIR>/scripts/fetch.py "https://example.com" --json

依存関係のインストール

初回のみ使用してください。スクリプトが確認し、不足しているものがあれば知らせます。

pip install scrapling html2text

システム管理下の Python(macOS/Linux)を使用している場合は、--break-system-packages を追加するか、仮想環境を使用してください。

失敗時のルール

  • 同じ URL で一度失敗したら、そこで終了し、ユーザーに「この URL からコンテンツを抽出できませんでした」と伝えてください
  • 再試行しないでください。失敗した呼び出しのたびにコンテキストトークンを消費します

コメント