この記事の登場人物
🧑💻 …Claude Cowork も Claude Code+MCP も使い倒してる先輩エンジニア
🐣 …「AIに全部やらせたい」と思ってる後輩
🐣「先輩、Claudeってスクレイピングできるんですよね?もうコード書かなくていいんじゃないですか」
🧑💻「できるよ。でもいくらかかるか知ってる?」
🐣「…タダじゃないんですか」
🧑💻「実際に試してみよう」
この記事でわかること
- Claudeでスクレイピングする2つの方法(Cowork / Code+MCP)
- 実測データ:何件取れて、何秒かかって、トークンをどれだけ食うか
- どういう場面でClaudeが強くて、どこでコードに負けるか
シリーズ記事
この記事の解説版(通常の技術記事形式)もあります
Claudeでスクレイピングする方法は2つある
🐣「そもそもClaudeでどうやってスクレイピングするんですか」
🧑💻「2つある」
| 方法 | イメージ | 向いてること |
|---|---|---|
| Cowork | Claudeがブラウザを代わりに操作してくれる | 探索、1回きりの取得 |
| Code+MCP | コードの中からClaude APIを呼んでデータ取得 | 自動化、繰り返し実行 |
🐣「Coworkはクリックしてくれるやつですね。Code+MCPは?」
🧑💻「MCPっていうのは、Claude Codeに外部ツールを接続する仕組み。プラグインみたいなもの」
🐣「どんなプラグインがあるんですか?」
🧑💻「主に3つ。WebFetchでHTML取得、Playwright MCPでブラウザ操作、scrapling-fetch-mcpでボット対策の回避。用途に応じて使い分ける」
🐣「じゃあCoworkで試してダメならCode+MCPって感じですか」
🧑💻「まあそんな感じ。じゃあ実測していこう」
まずは6件取ってみる
🧑💻「ダミーECサイトから商品6件。最もシンプルなケース」
| Cowork | Code+MCP | 参考: Pythonコード | |
|---|---|---|---|
| 取得件数 | 6件 | 6件 | 6件 |
| 所要時間 | 手動30秒〜 | 0.032秒 | 0.018秒 |
| トークン消費 | サブスク内 | ~3,200トークン | $0 |
| 月額 | Pro $20〜Max $200 | Max $100〜$200 | $0 |
🐣「全部6件取れてますね。Code+MCPは1回3,200トークン消費か。サブスク内だから追加料金はないですよね?」
🧑💻「そう。でもサブスクには利用上限がある。問題はこれ、ページが増えるとトークン消費も掛け算になる」
🐣「…?」
5ページ巡回したらトークン消費も5倍
🧑💻「5ページ30商品を取ってみよう。1ページごとにLLMを呼び出すから、トークン消費も5倍」
| ページ | トークン消費 |
|---|---|
| 1ページ目 | ~3,300 |
| 2ページ目 | ~3,300 |
| 3ページ目 | ~3,300 |
| 4ページ目 | ~3,300 |
| 5ページ目 | ~3,300 |
| 合計 | ~16,600トークン |
🐣「5ページで16,600トークン。サブスク内だから金額的には問題ないですよね」
🧑💻「問題はスケールだよ。サブスクには利用上限がある。これを毎日やったら?」
| 頻度 | CC+MCP | Pythonコード |
|---|---|---|
| 1回(5ページ) | ~16,600トークン | $0 |
| 毎日×30日 | ~50万トークン/月 | $0 |
🐣「月50万トークン…5ページなら大丈夫そうですけど」
🧑💻「5ページだからね。ページ数に比例するから、1000ページなら月330万トークン。サブスクの上限枠を一気に食い潰す。Pythonコードならトークン消費ゼロ」
🐣「じゃあ素直にコード書いた方がいいですか?」
🧑💻「スケール面ではね。でもClaudeにはコードにできないことがある」
AIの真骨頂:サイトのHTML構造が変わったとき
🧑💻「たとえば、HTMLの構造が変わっても同じプロンプトで取れる。これを見てくれ」
| Pythonコード | Claude (Code+MCP) | |
|---|---|---|
v1(.product-card) |
6件 | 6件 |
v2(.item-tile に全面変更) |
0件 | 6件 |
| 修正の手間 | セレクタ書き直し | 不要 |
🐣「コードだと0件になるのに、Claudeは同じプロンプトで6件取れてる!」
🧑💻「LLMはHTMLを意味的に解釈するから、タグ名が変わっても『これが商品名だろう』と推測できる。セレクタに依存しない」
🐣「セレクタ調べ直す手間がゼロってことですよね。めちゃくちゃ楽じゃないですか」
🧑💻「構造変更対応はClaudeの圧勝。でもこの強みを活かすなら、探索フェーズでだけ使えばいいんだよ」
WebFetch の落とし穴:JS描画ページとAnti-Bot
🐣「ところで、Code+MCPって常に6件取れるんですか?」
🧑💻「実はそうでもない。ツールごとに弱点があるんだ」
JS描画ページ
| MCPツール | 取得件数 |
|---|---|
| WebFetch MCP | 0件(JS未実行) |
| Playwright MCP | 6件 |
🐣「WebFetchだとJS動かないから0件…」
🧑💻「SPAやReactアプリみたいなページにはPlaywright MCP必須。ツールの選び方を間違えるとデータが取れない」
Anti-Bot対策
| MCPツール | User-Agent | 結果 |
|---|---|---|
| WebFetch MCP | httpx/0.27 |
403 Blocked |
| Playwright MCP | ブラウザUA | 200 OK |
| scrapling-fetch-mcp | ステルスUA | 200 OK |
🐣「WebFetchはAnti-Botにも引っかかる…」
🧑💻「Coworkは実際のChromeで操作するからブロックされない。MCPツールの場合は、状況に応じて使い分ける必要がある。こういうイメージ」
1000ページ取ったらどうなる?
🐣「ぶっちゃけ、大量に取りたいんですけど」
🧑💻「ページ数がそのままトークン消費になる。見てみよう」
| 規模 | Claude Code+MCP | Pythonコード |
|---|---|---|
| 1ページ | ~3,300トークン | $0 |
| 100ページ | ~33万トークン | $0 |
| 1000ページ | ~330万トークン | $0 |
🐣「1000ページで330万トークン!?」
🧑💻「Maxプランの上限枠をこれだけで使い切りかねない。Coworkに至っては手動だから1000ページは物理的に無理」
🐣「大量取得はコード書くしかないですね…」
🧑💻「そう。でも逆に、月に数回、数ページだけならサブスク内で余裕。コード書く時間の方がもったいない」
結論: Claudeとコード、どっちを使う?
🐣「結局どうすればいいんですか」
🧑💻「この表だけ覚えとけ」
| こういう場面なら… | 使うもの |
|---|---|
| 初見のサイトを調べたい | Claude Cowork |
| 「取れるか」をサッと確認 | Claude Cowork |
| サイトのセレクタを特定したい | Claude (Cowork or Code+MCP) |
| 定期的にデータを収集したい | Pythonコード |
| 100ページ以上取りたい | Pythonコード |
| サイト構造が変わってないか監視 | Claude Code+MCP |
🐣「探索はClaude、定期実行はコード」
🧑💻「正解。もう一歩進むなら、こういうハイブリッド運用がベスト」
🐣「AIがあればコード不要、じゃなくて…」
🧑💻「AIがあるからこそ、コードの価値が活きる。探索コストをAIが引き受けてくれるから、人間はコードを書くことに集中できる」
🐣「"AIがあるからコード不要"じゃなくて、"AIのおかげでコードに集中できる"ってことか…。帰ったらScrapling触ってみます」
この記事の解説版(通常の技術記事形式)もあります
トークン内訳やレーダーチャートの詳細など、もう少し踏み込んだ内容を掲載しています。