Claude Codeに競合の料金ページを調査してほしいと頼みます。するとウェブを検索して、次のようなスニペットだけを返します。「月額29ドルから。」これでは足りません。必要なのは、料金表全体、機能比較、エンタープライズプラン、つまりページの実際の内容です。
ウェブ検索は要約を返します。ウェブクロールはページそのものを返します。
ここでは、Claude Codeにウェブクロールを追加する方法を紹介します。そうすれば、エージェントがウェブページ全体を読み、構造化データを抽出し、その調査結果をワークフローに直接取り込めます。
ウェブ検索とウェブクロールの違いは?
両者は関連していますが、役割は異なります。
| ウェブ検索 | ウェブクロール | |
|---|---|---|
| 返ってくるもの | スニペット、リンク、引用 | クリーンなMarkdown形式のページ全体 |
| 向いている用途 | すばやい回答、発見、事実確認 | 深い調査、コンテンツ抽出、競合分析 |
| 速度 | 数秒 | 数秒から1分程度(ページ全体の取得) |
| データの深さ | 表層的 | 完全 — 見出し、段落、表をすべて含む |
| ユースケース | 「Xの料金はいくら?」 | 「料金ページ全体を抽出して、自社料金と比較する」 |
エージェントには両方が必要です。検索で適切なページを見つけ、クロールで正しく読むのです。
なぜClaude Codeにウェブクロールが必要なのか
Claude Codeはコードベースを推論するのが得意です。関数のリファクタリング、テスト作成、ファイルをまたいだデバッグができます。ですが、競合のAPIドキュメント、ライブラリの変更履歴、製品の機能一覧のようなものを調べようとすると、壁にぶつかります。
ウェブ検索は助けになりますが、スニペットだけでは限界があります。料金ページに12のプランがあるかもしれません。ドキュメントページに40のセクションがあるかもしれません。変更履歴が3年分に及ぶこともあります。150文字のスニペットは1つのことしか教えてくれません。ページ全体はすべてを教えてくれます。
ウェブクロールは、エージェントに完全なページを渡します。すると、次のことができます。
- 構造化データの抽出(料金プラン、機能一覧、APIエンドポイント)
- 競合製品を項目ごとに比較
- ドキュメントをコード生成に反映する(「ドキュメントに書かれている通りに認証を実装する」)
- 時間経過による変化を監視する(同じページを毎週クロールし、結果を比較する)
方法1:手動ウェブスクレイピング(壊れやすい方法)
Claude Codeにスクレイピングサービスを直接呼び出させることもできます。提供元を選び(Firecrawl、Jina、ScrapingBee)、登録してAPIキーを取得し、エージェントに接続します。
手動アプローチの流れは次の通りです。
- スクレイピングサービスに登録する
- APIキーを取得する
- Claude Codeが呼べるシェルスクリプトまたはMCP設定を書く
- レート制限、再試行、取得失敗を処理する
- レスポンスを解析してエージェントのコンテキストに戻す
これはたまに使う分には有効です。しかし、スケールすると壊れやすくなります。サイトごとにブロックするスクレイパーが異なり、レート制限は提供元によって違い、統合の保守に費やす時間が、開発に使いたかった時間を奪ってしまいます。
方法2:クロール用MCPサーバー
ウェブクロール用のMCPサーバーは、スクレイピングのロジックを再利用可能な統合にまとめます。FirecrawlのMCPサーバーが最も一般的で、Claude Codeがそれを呼び出すと、どのURLでもクリーンなMarkdownを返します。
手動のAPI接続よりは設定が軽いですが、それでも管理が必要です。
- 機能ごとに1つのMCPサーバー(クロールと検索は別)
- 提供元ごとのレート制限と認証
- スクレイピング提供元を切り替えるときのフォーマット差異
方法3:検索 + クロールのための1つのCLI(AnyCap方式)
この方法は、検索とクロールを1つのコマンド面にまとめます。エージェントはページを探すために検索し、その後に完全に読むためにクロールします。すべて同じCLIから行えます。
# ステップ1: 関連ページを検索
anycap search --prompt "competitor pricing pages SaaS 2026" --citations
# ステップ2: 最も関連性の高い結果をクロールして全文を取得
anycap crawl --url "https://competitor.com/pricing" -o pricing.md
ランタイムが処理するのは次の内容です。
- 構造化出力。 ページはクリーンなMarkdownに変換され、見出し、段落、表、コードブロックが保持されます。
- JavaScriptレンダリング。 動的ページ(SPA、Reactアプリ)は抽出前にレンダリングされます。
- クリーンなコンテンツ。 ナビゲーション、広告、定型文は除去され、残るのは本文です。
- 一貫した形式。 クロールしたページは、出典に関係なく同じMarkdown構造で返されます。
インストール:
npm i -g anycap
anycap login
anycap skill install --target ~/.claude/skills/anycap-cli/
→ AnyCapを無料でインストール — 新規ユーザーに250クレジット
実用例:競合調査パイプライン
自社製品の料金を3社の競合と比較する必要があるとします。ワークフロー全体は次の通りです。
# 1. 競合の料金ページを検索
anycap search --prompt "competitor A pricing plans 2026" --citations
anycap search --prompt "competitor B pricing plans 2026" --citations
anycap search --prompt "competitor C pricing plans 2026" --citations
# 2. 各料金ページを全文クロール
anycap crawl --url "https://competitor-a.com/pricing" -o competitor-a.md
anycap crawl --url "https://competitor-b.com/pricing" -o competitor-b.md
anycap crawl --url "https://competitor-c.com/pricing" -o competitor-c.md
# 3. クロールした内容をClaude Codeに渡して分析
# これでClaude Codeは完全な料金データを持ち、次を生成できる:
# - 比較表
# - 価格ポジショニングの提案
# - 機能ギャップ分析
エージェントは調査し、クロールし、分析し、提案しました。しかもすべて1回のセッションで完了です。手動でブラウザタブを開く必要も、コピペもありません。
実用例:ドキュメント駆動開発
エージェントがAPI連携を実装する必要があるとします。認証フローを推測する代わりに、公式ドキュメントをクロールします。
# API認証ドキュメントをクロール
anycap crawl --url "https://api.provider.com/docs/auth" -o auth-docs.md
# エンドポイントリファレンスをクロール
anycap crawl --url "https://api.provider.com/docs/endpoints" -o endpoints.md
# これでClaude Codeは、古い可能性のある学習データではなく
# 実際のドキュメントから統合を実装する
これは、「Claude Code、Stripe連携を実装して」(学習データに頼るため古い可能性がある)と、「Claude Code、最新のStripeドキュメントをクロールして、記載どおりに統合を実装して」(正確、最新、信頼できる)の違いです。
実用例:競合モニタリング
定期的な調査ワークフローを組みましょう。エージェントがスケジュールに従って競合ページをクロールし、結果を差分比較します。
# 競合の変更履歴をクロール
anycap crawl --url "https://competitor.com/changelog" -o competitor-changelog-$(date +%Y%m%d).md
# 競合の機能ページをクロール
anycap crawl --url "https://competitor.com/features" -o competitor-features-$(date +%Y%m%d).md
# 先週のクロールと比較
diff competitor-features-20260511.md competitor-features-20260518.md
これを毎週実行してください。エージェントが新機能、価格変更、更新されたメッセージを、顧客から聞く前に見つけます。
検索 + クロール:完全なリサーチスタック
ウェブ検索は見つけます。ウェブクロールは読みます。2つを組み合わせることで、エージェントに完全な調査能力が生まれます。
| ステップ | コマンド | 役割 |
|---|---|---|
| 1. 発見 | anycap search |
根拠のある引用付きで関連ページを見つける |
| 2. 抽出 | anycap crawl |
ページ全体の内容をクリーンなMarkdownで取得する |
| 3. 分析 | Claude Code | 抽出した内容をもとに推論する |
| 4. 実行 | Claude Code | 結果に基づいて実装、比較、レポートを行う |
これが根拠あるリサーチです。エージェントは学習データや断片的なスニペットに依存しません。重要なページの、実際で最新の内容をもとに動きます。
いつクロールし、いつ検索するか
| 検索を使うとき... | クロールを使うとき... |
|---|---|
| すばやい答えが必要 | ページ全体が必要 |
| どのページがあるか探している | 必要なページが分かっていて、そのすべてを読みたい |
| 引用付きの根拠ある要約が必要 | 構造化データの抽出が必要 |
| 速度が最優先 | 深さが最優先 |
| 答えがスニペットに収まる | 答えが表、リスト、複数セクションにまたがる |
多くのリサーチワークフローは両方を使います。発見には検索、抽出にはクロールです。
FAQ
ウェブクロールはJavaScriptでレンダリングされるページでも動きますか?
はい。ランタイムは抽出前にReact、Vue、SPAなどの動的コンテンツをレンダリングします。ブラウザで見えるものが、エージェントにも渡ります。
ウェブクロールはClaude Codeの組み込みウェブ検索とどう違うのですか?
Claude Codeの組み込みウェブ検索はスニペットと要約を返します。ウェブクロールは、すべての見出し、段落、表、コードブロックを含むページ全体をMarkdownで返します。すばやい答えには検索を。深さが必要なときはクロールを使ってください。
1回のセッションで複数ページをクロールできますか?
はい。URLごとに anycap crawl を1回実行します。エージェントはURLのリストを順番にクロールできます。結果はすべてローカルのMarkdownファイルとして保存されます。
ページがクローラーをブロックしたらどうなりますか?
一部のページは自動アクセスをブロックします。ランタイムはrobots.txtを尊重し、アクセス制限を適切に処理します。ページをクロールできない場合、エージェントは黙って失敗せず、明確なエラーメッセージを受け取ります。
CursorやCodexでも使えますか?
はい。anycap crawl は同じCLIを使い、Claude Code、Cursor、Codex で動作します。1回のインストールで、すべてのエージェントに対応します。
結論
ウェブ検索は、何が存在するかをエージェントに伝えます。ウェブクロールは、それを読めるようにします。競合調査、ドキュメント駆動開発、コンテンツ抽出では、検索だけでは不十分です。
エージェントに両方を与えてください。見つけるために検索し、理解するためにクロールするのです。
→ Claude CodeにフルWebアクセスを与える — 1つのCLIで検索 + クロール
📖 次に読むもの
- AIエージェントにウェブ検索機能を与える方法 — 1つのCLIコマンド — このクロールガイドのウェブ検索版です。
- AIエージェントによる競合モニタリング — 競合を自動で監視するcronジョブを構築します。
- AIエージェント向けのAI搭載検索:根拠ある検索 vs 従来型RAG — 根拠ある検索とベクトル検索を使い分けるタイミング。
関連記事
- Claude Codeで動画を生成する方法:2026年完全ガイド — 機能はどんどん積み重なっていきます。
- Capability Runtimeとは? — 検索、クロール、画像、動画、保存を1つのCLIにまとめる基盤です。
AnyCapチームより。私たちは、引用付きウェブ検索、ページ全体のクロール、そしてあなたが介在しなくても調査に必要なすべてをエージェントに与える capability runtime を構築しています。