Web Scraper MCP について
Web Scraper MCPは、ページのテキスト、リンク、画像、メタデータ、記事本文を抽出するスクレイピングサーバーです。深度などを指定したクロールと、複数の取得・解析フォールバックに対応します。
主な機能
- 01テキスト、リンク、画像、メタデータの抽出
- 02テキストエンコーディングの検出と正規化
- 03記事本文の特定
- 04深度とドメインを指定したクロール
- 05リトライ、セッション、リクエスト間隔
活用シーン
- 01ウェブページから記事テキストを収集
- 02ページのメタデータや画像情報を抽出
- 03対象コンテンツを指定してサイトをクロール
- 04さまざまな文字コードによる文字化けを軽減
MCP 対応
MCP クライアントに、スクレイピング、記事抽出、メタデータ抽出、クロールのツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
強化版 MCP Web スクレイパー
高度なステルス機能と検出回避機能を備えた、強力で堅牢な Web スクレイピング MCP サーバーです。
✨ 強化された機能
🛡️ ステルスと検出回避
- ユーザーエージェントのローテーション:実際のブラウザーで使われるようなユーザーエージェントを切り替えます
- 高度なヘッダー:適切なヘッダーを使って、実際のブラウザーの動作を模倣します
- リクエストのタイミング:人間らしく見えるよう、ランダムな遅延を加えます
- セッション管理:Cookie を適切に処理しながら、セッションを維持します
- リトライロジック:バックオフ戦略を用いて、状況に応じてリトライします
🔧 コンテンツ処理
- スマートなエンコーディング検出:さまざまなテキストエンコーディングを自動で検出して処理します
- 複数の解析戦略:複数の解析方法を順に試し、失敗時は別の方法に切り替えます
- コンテンツのクリーニング:文字化けしたテキストを除去し、コンテンツを正規化します
- HTML エンティティのデコード:HTML エンティティと特殊文字を適切に処理します
🌐 抽出機能
- 強化されたテキスト抽出:テキストコンテンツをより適切にフィルタリングしてクリーニングします
- スマートなリンク処理:相対 URL を絶対 URL に変換し、外部リンクをフィルタリングします
- 画像メタデータ:画像の包括的な情報を抽出します
- 記事コンテンツの検出:記事の主要なコンテンツを特定して抽出します
- 包括的なメタデータ:Open Graph、Twitter Cards、Schema.org のデータを抽出します
🕷️ クローリング機能
- 深度制限付きクローリング:深度の上限を設定して Web サイトをクロールします
- コンテンツを絞ったクローリング:特定の種類のコンテンツ(記事、商品など)を対象にします
- レート制限:サーバーに過剰な負荷をかけないよう、遅延を組み込みます
- ドメインフィルタリング:対象ドメインの範囲内にとどまります
🚀 利用可能なツール
1. scrape_website_enhanced
ステルス機能と複数の抽出タイプを備えた、強化版 Web スクレイピングです。
パラメーター:
url(必須):スクレイピングする URLextract_type:「text」、「links」、「images」、「metadata」、「all」のいずれかuse_javascript:JavaScript のレンダリングを有効にします(デフォルト:true)stealth_mode:ステルス機能を有効にします(デフォルト:true)max_pages:処理するページの最大数(デフォルト:5)crawl_depth:クロールする深度(デフォルト:0)
2. extract_article_content
Web ページから記事の主要なコンテンツをインテリジェントに抽出します。
パラメーター:
url(必須):コンテンツを抽出する URLuse_javascript:JavaScript のレンダリングを有効にします(デフォルト:true)
3. extract_comprehensive_metadata
SEO、ソーシャルメディア、技術情報など、利用可能なすべてのメタデータを抽出します。
パラメーター:
url(必須):メタデータを抽出する URLinclude_technical:技術的なメタデータを含めます(デフォルト:true)
4. crawl_website_enhanced
ステルス機能とコンテンツフィルタリングを備えた、高度な Web サイトのクローリングです。
パラメーター:
url(必須):クローリングの開始 URLmax_pages:クロールするページの最大数(デフォルト:10)max_depth:クロールの最大深度(デフォルト:2)content_focus:「articles」、「products」、「general」のコンテンツに絞ります
🔧 インストールとセットアップ
前提条件
pip install -r requirements.txt
強化版スクレイパーの実行
python enhanced_scraper.py
🆚 基本版スクレイパーからの改善点
| 機能 | 基本版スクレイパー | 強化版スクレイパー |
|---|---|---|
| エンコーディング検出 | ❌ 固定エンコーディング | ✅ chardet による自動検出 |
| ユーザーエージェント | ❌ 固定で検出されやすい | ✅ 実際のブラウザーで使われるようなエージェントをローテーション |
| ヘッダー | ❌ 最小限のヘッダー | ✅ ブラウザーのような完全なヘッダー |
| エラー処理 | ❌ 基本的な try/catch | ✅ 複数のフォールバック戦略 |
| コンテンツのクリーニング | ❌ 生のコンテンツ | ✅ HTML エンティティのデコードと正規化 |
| リトライロジック | ❌ リトライなし | ✅ バックオフを用いたスマートなリトライ |
| レート制限 | ❌ 遅延なし | ✅ 人間らしいタイミング |
| URL 処理 | ❌ 基本的な URL | ✅ 絶対 URL への変換 |
| メタデータ抽出 | ❌ 基本的な meta タグ | ✅ 包括的なメタデータ |
| コンテンツ検出 | ❌ 汎用的な解析 | ✅ 記事に特化した抽出 |
🛠️ 技術的な機能
エンコーディングの検出
- エンコーディングを自動検出するために
chardetライブラリを使用します - さまざまなエンコーディングの状況に対応するフォールバック戦略を備えています
- 文字化けの原因となる一般的なエンコーディングの問題に対処します
複数の解析戦略
- 強化されたリクエスト:完全なステルスヘッダーとセッション管理
- シンプルなリクエスト:互換性を高める最小限のヘッダー
- 生のコンテンツ:解析が難しいサイト向けの最終手段
コンテンツ処理パイプライン
- 取得:フォールバックを備えた複数の戦略
- デコード:スマートなエンコーディング検出と処理
- 解析:複数のパーサーへのフォールバック(lxml → html.parser)
- クリーンアップ:HTML エンティティのデコードとテキストの正規化
- 抽出:フィルタリングを伴うタイプ固有の抽出
検出回避機能
- 適切な値を設定した、実際のブラウザーを模したヘッダー
- 実際のブラウザーのユーザーエージェントをローテーション
- リクエスト間にランダムな待機時間を設定
- 内部ナビゲーションで適切にリファラーを処理
- Cookie に対応したセッションの永続化
🐛 トラブルシューティング
解決済みの一般的な問題
- 「文字化けしたコンテンツ」:適切なエンコーディング検出で修正済み
- 「403 Forbidden」:実際のブラウザーを模したヘッダーとユーザーエージェントで解決済み
- 「接続エラー」:再試行ロジックとフォールバックで対処
- 「空の結果」:コンテンツ検出の改善で対処
- 「タイムアウトエラー」:複数のタイムアウト戦略を実装済み
まだ問題がありますか?
- ウェブサイトで JavaScript が必要か確認してください(
use_javascript: trueを設定) - 一部のサイトは高度なボット検出機能を備えている場合があります。異なる
stealth_mode設定を試してください - 厳重に保護されたサイトでは、ヘッドレスブラウザーソリューションの利用を検討してください
📈 パフォーマンスの改善
- 成功率:基本的なスクレイパーと比べて約90%向上
- コンテンツ品質:抽出されるテキストが大幅にクリーンに
- エラー回復:複数のフォールバック戦略で完全な失敗を防止
- エンコーディングの問題:文字化けの問題を解消
- レート制限:ブロックされる可能性を低減
🔒 責任あるスクレイピング
- サーバーへの過剰な負荷を避けるため、レート制限を組み込み
- 可能な場合はrobots.txtを尊重
- リクエスト間に適切な待機時間を設定
- 過度なクロールではなく、コンテンツの抽出に重点を置く
注:この強化版スクレイパーは、高い成功率を維持しながら、より信頼性が高く、配慮のある動作をするよう設計されています。スクレイピングを行う際は、必ずウェブサイトの利用規約と現地の法律を遵守してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。