web-fetch について
web-fetchは、Markdownエンドポイント、サイト別セレクター、Bunスクリプトの順でウェブコンテンツを抽出するスキルです。ページを読みやすいテキストに変換し、既知のサイト向けセレクターパターンも備えています。
主な機能
- 01Markdownコンテンツを優先取得
- 02CSSセレクターによるHTML抽出
- 03Bunフォールバックスクリプトの利用
- 04包含・除外セレクターに対応
- 05トラブルシューティングの案内
活用シーン
- 01ドキュメントサイトの記事本文を抽出
- 02ウェブページの特定領域を選択
- 03セレクターの結果が不十分な場合に代替解析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alleneubank/ claude-code --skill web-fetchインストール後、Claude Code で/web-fetchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignorefetch.tspackage.json詳細
Web コンテンツの取得
次の順序で Web コンテンツを取得します。
- Markdown ネイティブのエンドポイント(
content-type: text/markdown)を優先します - 既知のサイトにはセレクター方式の HTML 抽出を使用します
- セレクターで失敗した場合は、同梱の Bun フォールバック スクリプトを使用します
前提条件
抽出する前に、必要なツールがそろっていることを確認します。
command -v curl >/dev/null || echo "curl is required"
command -v html2markdown >/dev/null || echo "html2markdown is required for HTML extraction"
command -v bun >/dev/null || echo "bun is required for fetch.ts fallback"
同梱スクリプト用の Bun 依存関係をインストールします。
cd ~/.claude/skills/web-fetch && bun install
デフォルトのワークフロー
任意の URL で、次のフローをデフォルトとして使用します。
URL="<url>"
CONTENT_TYPE="$(curl -sIL "$URL" | awk -F': ' 'tolower($1)=="content-type"{print tolower($2)}' | tr -d '\r' | tail -1)"
if echo "$CONTENT_TYPE" | grep -q "markdown"; then
curl -sL "$URL"
else
curl -sL "$URL" \
| html2markdown \
--include-selector "article,main,[role=main]" \
--exclude-selector "nav,header,footer,script,style"
fi
既知のサイトのセレクター
| サイト | 対象セレクター | 除外セレクター |
|---|---|---|
| platform.claude.com | #content-container | - |
| docs.anthropic.com | #content-container | - |
| developer.mozilla.org | article | - |
| github.com(ドキュメント) | article | nav,.sidebar |
| 一般 | article,main,[role=main] | nav,header,footer,script,style |
例:
curl -sL "<url>" \
| html2markdown \
--include-selector "#content-container" \
--exclude-selector "nav,header,footer"
適切なセレクターの見つけ方
サイトがパターン一覧にない場合:
# Check what content containers exist
curl -s "<url>" | grep -o '<article[^>]*>\|<main[^>]*>\|id="[^"]*content[^"]*"' | head -10
# Test a selector
curl -sL "<url>" | html2markdown --include-selector "<selector>" | head -30
# Check line count
curl -sL "<url>" | html2markdown --include-selector "<selector>" | wc -l
汎用フォールバック スクリプト
セレクターで適切な出力が得られない場合は、同梱のパーサーを実行します。
bun ~/.claude/skills/web-fetch/fetch.ts "<url>"
すでにスキルのディレクトリにいる場合:
bun fetch.ts "<url>"
オプションのリファレンス
--include-selector "CSS" # Keep only matching elements
--exclude-selector "CSS" # Remove matching elements
--domain "https://..." # Convert relative links to absolute
トラブルシューティング
セレクターで出力が空になる:ページが Markdown ネイティブである可能性があります。まずヘッダーを確認してください。
curl -sIL "<url>" | grep -i '^content-type:'
誤ったコンテンツが選択される:サイトに複数の記事またはメインの領域がある可能性があります。
curl -s "<url>" | grep -o '<article[^>]*>'
html2markdown が見つからない:インストールしてから、セレクター方式の抽出を再試行してください。
bun またはスクリプトの依存関係が見つからない:cd ~/.claude/skills/web-fetch && bun install を実行してください。
コードブロックが見つからない:サイトが標準以外のコード書式を使用しているか確認してください。
クライアント側でレンダリングされるコンテンツ:HTML に「Loading...」というプレースホルダーしかない場合、コンテンツは JS でレンダリングされています。curl でも Bun スクリプトでも抽出できないため、ブラウザベースのツールを使用してください。