インストール
コンテンツ詳細
代替品
インストール
{
"mcpServers": {
"scraper": {
"url": "http://localhost:8000/mcp"
}
}
}🚀 Scraper MCP
このScraper MCPは、Webスクレイピングを効率的に行うためのコンテキスト最適化型Model Context Protocol (MCP)サーバーです。サーバーは、AIツールに前処理済みのフィルタリングされたWebコンテンツを提供します。生のHTMLをマークダウンまたはテキストに変換し、サーバー側でCSSセレクターを適用することで、トークンの使用量を削減し、LLMは実際に必要なデータのみを受け取ります。
🚀 クイックスタート
Claude Codeでの即時セットアップ
Docker Hubから事前構築されたイメージをプルして実行します。
# Docker Hubを使用
docker run -d -p 8000:8000 --name scraper-mcp cotdp/scraper-mcp:latest
# Claude CodeにMCPサーバーを追加
claude mcp add --transport http scraper http://localhost:8000/mcp --scope user
# ログを表示
docker logs -f scraper-mcp
# サーバーを停止
docker stop scraper-mcp && docker rm scraper-mcp
Claude Codeで試してみましょう。
> scrape https://cutler.sg/
~ ホームページをスクレイピングし、おそらくマークダウン変換がデフォルトで行われます
> scrape and filter <url> elements from https://cutler.sg/sitemap.xml
~ 約100個のURLを返します
> scrape and filter all <title> elements from those urls
~ 約100個のすべてのURLからタイトルのみを取得します
✨ 主な機能
コンテキスト最適化
- CSSセレクターフィルタリング:LLMに送信する前に、サーバー側で関連するコンテンツのみを抽出します(例:
.article-content,#main)。 - スマート変換:HTMLをマークダウンまたはプレーンテキストに変換し、マークアップのノイズを排除します。
- リンク抽出:生のHTMLアンカータグではなく、構造化されたリンクオブジェクトを返します。
- ターゲットスクレイピング:CSSセレクターと
strip_tagsを組み合わせて、精密なフィルタリングを行います。 - トークン効率化:生のHTMLと比較して、コンテキストウィンドウの使用量を70 - 90%削減します。
スクレイピングツールとインフラストラクチャ
- 複数のスクレイピングモード:生のHTML、マークダウン変換、プレーンテキスト抽出、およびリンク抽出。
- バッチ操作:自動リトライロジックを備えた複数のURLを同時に処理します。
- インテリジェントキャッシュ:3層キャッシュシステム(リアルタイム/デフォルト/静的)を使用して、冗長なリクエストを最小限に抑えます。
- リトライと回復力:一時的な障害に対して、設定可能なリトライ回数で指数バックオフを行います。
- プロバイダーアーキテクチャ:複数のスクレイピングバックエンドをサポートする拡張可能な設計。
モニタリングと管理
- リアルタイムダッシュボード:サーバーの健全性、リクエスト統計、キャッシュメトリクス、および最近のエラーを監視します。
- 対話型プレイグラウンド:ブラウザから直接スクレイピングツールをテストし、ライブJSONレスポンスを取得します。
- ランタイム設定:サーバーを再起動することなく、並列性、タイムアウト、リトライ、キャッシュTTL、およびプロキシ設定を調整します。
- Dockerサポート:Docker Composeを使用した1コマンドでのデプロイ。
- HTTP/SSEトランスポート:Streamable HTTPとSSE MCPトランスポートの両方をサポートします。
📦 インストール
オプション1: Docker Run(最も簡単)
Docker HubまたはGitHub Container Registryから事前構築されたイメージをプルして実行します。
# Docker Hubを使用
docker run -d -p 8000:8000 --name scraper-mcp cotdp/scraper-mcp:latest
# またはGitHub Container Registryを使用
docker run -d -p 8000:8000 --name scraper-mcp ghcr.io/cotdp/scraper-mcp:latest
# ログを表示
docker logs -f scraper-mcp
# サーバーを停止
docker stop scraper-mcp && docker rm scraper-mcp
サーバーは以下の場所で利用できます。
- MCPエンドポイント:
http://localhost:8000/mcp(AIクライアント用) - ダッシュボード:
http://localhost:8000/(Webインターフェース)
オプション2: Docker Compose(本番環境での推奨)
永続的なストレージ、カスタム設定、および簡単な管理のために、Docker Composeを使用します。
1. docker-compose.ymlファイルを作成します。
services:
scraper-mcp:
image: cotdp/scraper-mcp:latest # またはghcr.io/cotdp/scraper-mcp:latest
container_name: scraper-mcp
ports:
- "8000:8000"
environment:
- TRANSPORT=streamable-http
- HOST=0.0.0.0
- PORT=8000
volumes:
- cache:/app/cache
restart: unless-stopped
volumes:
cache:
2. (オプション)プロキシまたはScrapeOps設定のために.envファイルを作成します。
cp .env.example .env
# .envを編集して、プロキシまたはScrapeOpsの設定を追加します
3. サーバーを起動します。
# デタッチモードで起動
docker-compose up -d
# ログを表示
docker-compose logs -f scraper-mcp
# ステータスを確認
docker-compose ps
4. サーバーを停止します。
# コンテナを停止して削除
docker-compose down
# コンテナを停止して削除し、キャッシュボリュームをクリア
docker-compose down -v
サーバーは以下の場所で利用できます。
- MCPエンドポイント:
http://localhost:8000/mcp(AIクライアント用) - ダッシュボード:
http://localhost:8000/(Webインターフェース)
💻 使用例
利用可能なツール
1. scrape_url
URLから生のHTMLコンテンツをスクレイピングします。
パラメーター:
urls(文字列またはリスト、必須): スクレイピングする単一のURLまたはURLのリスト(http:// またはhttps://)timeout(整数、オプション): リクエストのタイムアウト時間(秒)(デフォルト: 30)max_retries(整数、オプション): 失敗時の最大リトライ回数(デフォルト: 3)css_selector(文字列、オプション): HTML要素をフィルタリングするCSSセレクター(例:"meta", "img, video", ".article-content")
戻り値:
url: リダイレクト後の最終URLcontent: 生のHTMLコンテンツ(css_selectorが指定された場合はフィルタリングされたもの)status_code: HTTPステータスコードcontent_type: Content-Typeヘッダーの値metadata: 追加のメタデータ(以下を含む)headers: レスポンスヘッダーencoding: コンテンツのエンコーディングelapsed_ms: リクエストの実行時間(ミリ秒)attempts: 試行回数の合計retries: 実行されたリトライ回数css_selector_applied: 使用されたCSSセレクター(指定された場合)elements_matched: 一致した要素の数(css_selectorが指定された場合)
2. scrape_url_markdown
URLをスクレイピングし、コンテンツをマークダウン形式に変換します。
パラメーター:
urls(文字列またはリスト、必須): スクレイピングする単一のURLまたはURLのリスト(http:// またはhttps://)timeout(整数、オプション): リクエストのタイムアウト時間(秒)(デフォルト: 30)max_retries(整数、オプション): 失敗時の最大リトライ回数(デフォルト: 3)strip_tags(配列、オプション): 削除するHTMLタグのリスト(例:['script', 'style'])css_selector(文字列、オプション): 変換前にHTMLをフィルタリングするCSSセレクター(例:".article-content", "article p")
戻り値:
scrape_urlと同じですが、マークダウン形式のコンテンツmetadata.page_metadata: 抽出されたページのメタデータ(タイトル、説明など)metadata.attempts: 試行回数の合計metadata.retries: 実行されたリトライ回数metadata.css_selector_appliedおよびmetadata.elements_matched(css_selectorが指定された場合)
3. scrape_url_text
URLをスクレイピングし、プレーンテキストコンテンツを抽出します。
パラメーター:
urls(文字列またはリスト、必須): スクレイピングする単一のURLまたはURLのリスト(http:// またはhttps://)timeout(整数、オプション): リクエストのタイムアウト時間(秒)(デフォルト: 30)max_retries(整数、オプション): 失敗時の最大リトライ回数(デフォルト: 3)strip_tags(配列、オプション): 削除するHTMLタグ(デフォルト: script, style, meta, link, noscript)css_selector(文字列、オプション): テキスト抽出前にHTMLをフィルタリングするCSSセレクター(例:"#main-content", "article.post")
戻り値:
scrape_urlと同じですが、プレーンテキストコンテンツmetadata.page_metadata: 抽出されたページのメタデータmetadata.attempts: 試行回数の合計metadata.retries: 実行されたリトライ回数metadata.css_selector_appliedおよびmetadata.elements_matched(css_selectorが指定された場合)
4. scrape_extract_links
URLをスクレイピングし、すべてのリンクを抽出します。
パラメーター:
urls(文字列またはリスト、必須): スクレイピングする単一のURLまたはURLのリスト(http:// またはhttps://)timeout(整数、オプション): リクエストのタイムアウト時間(秒)(デフォルト: 30)max_retries(整数、オプション): 失敗時の最大リトライ回数(デフォルト: 3)css_selector(文字列、オプション): リンク抽出を特定のセクションに限定するCSSセレクター(例:"nav", "article.main-content")
戻り値:
url: スクレイピングされたURLlinks:url,text, およびtitleを持つリンクオブジェクトの配列count: 見つかったリンクの総数
ダッシュボードの機能
http://localhost:8000/にアクセスすることで、スクレイパーをリアルタイムで監視および管理するモニタリングダッシュボードにアクセスできます。
リアルタイムモニタリングダッシュボード
サーバーの健全性、リクエスト統計、リトライメトリクス、およびキャッシュパフォーマンスを一目で確認できます。
- サーバーステータス:健全性インジケーター、稼働時間、および起動時間
- リクエスト統計:総リクエスト数、成功率、および失敗数
- リトライ分析:総リトライ数およびリクエストごとの平均リトライ数
- キャッシュメトリクス:エントリ数、サイズ、ヒット率、およびワンクリックでのキャッシュクリア
- 最近のリクエスト:タイムスタンプ、ステータスコード、およびレスポンス時間を含む最後の10個のリクエスト
- 最近のエラー:詳細なエラーメッセージおよび試行回数を含む最後の10個の失敗
- リアルタイムモニタリングのために、9秒ごとに自動更新
対話型APIプレイグラウンド
コードを書かずにすべてのスクレイピングツールをテストできます。
- すべての4つのツールをテスト:
scrape_url,scrape_url_markdown,scrape_url_text,scrape_extract_links - パラメーターを設定:URL、タイムアウト、最大リトライ数、CSSセレクター
- 構文ハイライト付きの整形されたJSONレスポンスを表示
- ワンクリックでクリップボードにコピー
- パフォーマンステストのために実行時間を表示
ランタイム設定
サーバーを再起動することなく、設定を即座に調整できます。
- パフォーマンスチューニング:並列性(1 - 50)、タイムアウト、最大リトライ数
- キャッシュコントロール:デフォルト、リアルタイム、および静的キャッシュのTTL設定
- プロキシ設定:HTTP/HTTPS/NO_PROXY構成で有効/無効にする
- 即時反映:変更はサーバーを再起動することなく即座に適用されます
- 非永続的:設定は再起動時にリセットされます(永続的な変更には
.envを使用)
コンテキストフレンドリーなスクレイピングの理由
従来のWebスクレイピングでは、生のHTMLをLLMに送信するため、コンテキストウィンドウの70 - 90%がマークアップ、スクリプト、および関連性のないコンテンツに浪費されます。Scraper MCPは、サーバー側で重い処理を行うことでこの問題を解決します。
トークン効率の比較
フィルタリングなし(生のHTML):
❌ 典型的なブログ記事で45,000トークン
- 40,000トークン: HTMLマークアップ、CSS、JavaScript、広告、ナビゲーション
- 5,000トークン: 実際の記事コンテンツ
Scraper MCPを使用(CSSセレクター + マークダウン):
✅ 同じコンテンツで2,500トークン
- 0トークン: マークダウン変換によりマークアップが排除されました
- 0トークン: CSSセレクターにより広告/ナビゲーションがフィルタリングされました
- 2,500トークン: クリーンな記事テキスト
結果:95%のトークン削減、同じコンテキストウィンドウで18倍のコンテンツを収めることができます。
実際の例
# ❌ 従来のアプローチ: 生のHTMLをLLMに送信
html = requests.get("https://blog.example.com/article").text
# 結果: 45KBのHTML → ~45,000トークン
# ✅ Scraper MCP: サーバー側のフィルタリング + 変換
scrape_url_markdown(
"https://blog.example.com/article",
css_selector="article.main-content" # 記事のみを抽出
)
# 結果: 2.5KBのマークダウン → ~2,500トークン
主な利点
- 大幅なトークン節約:リクエストごとにコストを10 - 20倍削減します。
- より大きなコンテキストウィンドウ:同じコンテキストに18倍のコンテンツを収めることができます。
- 高速な処理:転送および処理するデータが少なくなります。
- クリーンなデータ:事前にフィルタリングされた構造化されたコンテンツが分析に適しています。
- より高い精度:LLMは関連するコンテンツに焦点を当て、マークアップのノイズを無視します。
各ツールの使用時期
scrape_url_markdown:記事、ドキュメント、ブログ記事(LLM消費に最適)scrape_url_text:プレーンテキストコンテンツ、最小限のフォーマットが必要な場合scrape_extract_links:ナビゲーション、リンク分析、サイトマップ生成scrape_url(生のHTML):正確な構造を保持する必要がある場合、またはメタタグを抽出する場合
📚 詳細ドキュメント
ローカル開発
前提条件
- Python 3.12以上
- uvパッケージマネージャー
セットアップ
# 依存関係をインストール
uv pip install -e ".[dev]"
# サーバーをローカルで実行
python -m scraper_mcp
# 特定のトランスポートとポートで実行
python -m scraper_mcp streamable-http 0.0.0.0 8000
開発コマンド
# テストを実行
pytest
# 型チェック
mypy src/
# リンティングとフォーマット
ruff check .
ruff format .
Dockerイメージ
事前構築されたイメージ(推奨)
マルチプラットフォームイメージは、すべてのリリースで自動的にビルドされ、公開されます。
Docker Hub:
docker pull cotdp/scraper-mcp:latest
GitHub Container Registry:
docker pull ghcr.io/cotdp/scraper-mcp:latest
利用可能なタグ:
latest- 最新の安定リリース0.1.0,0.1,0- セマンティックバージョンタグmain-<sha>- 最新のメインブランチビルド
サポートされるプラットフォーム: linux/amd64およびlinux/arm64
使用方法については、クイックスタートセクションを参照してください。
ソースからビルド
イメージをカスタマイズする必要がある場合、またはローカルでビルドする場合は、以下の手順を実行します。
# リポジトリをクローン
git clone https://github.com/cotdp/scraper-mcp.git
cd scraper-mcp
# イメージをビルド
docker build -t scraper-mcp:custom .
# デフォルト設定で実行
docker run -p 8000:8000 scraper-mcp:custom
# またはdocker-compose.ymlを使用(image: 行をscraper-mcp:customに変更)
docker-compose up -d
Claude Desktopからの接続
このサーバーをClaude Desktopで使用するには、MCP設定に追加します。
{
"mcpServers": {
"scraper": {
"url": "http://localhost:8000/mcp"
}
}
}
接続すると、Claudeはすべての4つのスクレイピングツールを使用できます。ブラウザでhttp://localhost:8000/を開いてダッシュボードにアクセスすることで、リクエストをリアルタイムで監視できます。
プロジェクト構造
scraper-mcp/
├── src/scraper_mcp/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # メインのMCPサーバーエントリポイント
│ ├── admin/ # 管理API(設定、統計、キャッシュ)
│ │ ├── router.py # HTTPエンドポイントハンドラー
│ │ └── service.py # ビジネスロジック
│ ├── dashboard/ # Webダッシュボード
│ │ ├── router.py # ダッシュボードルート
│ │ └── templates/
│ │ └── dashboard.html # モニタリングUI
│ ├── tools/ # MCPスクレイピングツール
│ │ ├── router.py # ツール登録
│ │ └── service.py # スクレイピング実装
│ ├── models/ # Pydanticデータモデル
│ │ ├── scrape.py # スクレイピングリクエスト/レスポンスモデル
│ │ └── links.py # リンク抽出モデル
│ ├── providers/ # スクレイピングバックエンドプロバイダー
│ │ ├── base.py # 抽象プロバイダーインターフェース
│ │ └── requests_provider.py # HTTPプロバイダー(requestsライブラリ)
│ ├── core/
│ │ └── providers.py # プロバイダーレジストリと選択
│ ├── cache.py # リクエストキャッシュ(ディスクベース)
│ ├── cache_manager.py # キャッシュライフサイクル管理
│ ├── metrics.py # リクエスト/リトライメトリクス追跡
│ └── utils.py # HTML処理ユーティリティ
├── tests/ # Pytestテストスイート
│ ├── test_server.py
│ ├── test_tools.py
│ └── test_utils.py
├── .github/workflows/
│ ├── ci.yml # CI/CD: テスト、リンティング
│ └── docker-publish.yml # Dockerイメージ公開
├── Dockerfile # マルチステージ本番ビルド
├── docker-compose.yml # ローカル開発設定
├── pyproject.toml # Python依存関係(uv)
├── .env.example # 環境構成テンプレート
└── README.md
アーキテクチャ
サーバーは、複数のスクレイピングバックエンドをサポートするために、プロバイダーアーキテクチャを使用しています。
- ScraperProvider:スクレイピング実装の抽象インターフェース
- RequestsProvider:
requestsライブラリを使用した基本的なHTTPスクレイパー - 将来のプロバイダー:Playwright、Selenium、Scrapyなどのサポートを追加できます。
プロバイダーの選択は、URLパターンに基づいて自動的に行われるため、異なるタイプのWebサイトに対して専用のプロバイダーを簡単に追加できます。
リトライ動作とエラー処理
スクレイパーには、一時的な障害を処理するための指数バックオフを備えたインテリジェントなリトライロジックが含まれています。
リトライ設定
- デフォルトの最大リトライ回数:3回
- デフォルトのタイムアウト:30秒
- リトライ遅延:1秒から始まる指数バックオフ
リトライスケジュール
デフォルト設定(最大リトライ回数 = 3)の場合:
- 最初の試行:即時
- リトライ1:1秒待機
- リトライ2:2秒待機
- リトライ3:4秒待機
最終的な失敗前の総最大待機時間:約7秒
リトライをトリガーする条件
スクレイパーは、以下の場合に自動的にリトライします。
- ネットワークタイムアウト (
requests.Timeout) - 接続失敗 (
requests.ConnectionError) - HTTPエラー (4xx、5xxステータスコード)
リトライメタデータ
すべての成功したレスポンスには、メタデータにリトライ情報が含まれています。
{
"attempts": 2, // 試行回数の合計(1 = リトライなし)
"retries": 1, // 実行されたリトライ回数
"elapsed_ms": 234.5 // リクエストの総実行時間(ミリ秒)
}
リトライ動作のカスタマイズ
# リトライを無効にする
result = await scrape_url("https://example.com", max_retries=0)
# 不安定なサイトに対してより積極的なリトライを行う
result = await scrape_url("https://example.com", max_retries=5, timeout=60)
# 時間に敏感な操作に対して素早く失敗する
result = await scrape_url("https://example.com", max_retries=1, timeout=10)
CSSセレクターフィルタリング
すべてのスクレイピングツールは、オプションのCSSセレクターフィルタリングをサポートしており、HTMLから特定の要素を抽出する前に処理することができます。これにより、必要なコンテンツにのみ焦点を当てることができます。
サポートされるセレクター
サーバーは、BeautifulSoup4の.select()メソッド(Soup Sieveによって提供される)を使用しており、以下のセレクターをサポートしています。
- タグセレクター:
meta,img,a,div - 複数のセレクター:
img, video(カンマ区切り) - クラスセレクター:
.article-content,.main-text - IDセレクター:
#header,#main-content - 属性セレクター:
a[href],meta[property="og:image"],img[src^="https://"] - 子孫結合子:
article p,div.content a - 疑似クラス:
p:nth-of-type(3),a:not([rel])
使用例
# SEO分析のためにメタタグのみを抽出
scrape_url("https://example.com", css_selector="meta")
# 広告を除外して、記事コンテンツをマークダウンとして取得
scrape_url_markdown("https://blog.com/article", css_selector="article.main-content")
# 特定のセクションからテキストを抽出
scrape_url_text("https://example.com", css_selector="#main-content")
# 商品画像のみを取得
scrape_url("https://shop.com/product", css_selector="img.product-image, img[data-product]")
# ナビゲーションリンクのみを抽出
scrape_extract_links("https://example.com", css_selector="nav.primary")
# Open Graphメタタグを取得
scrape_url("https://example.com", css_selector='meta[property^="og:"]')
# strip_tagsと組み合わせて、細かい制御を行う
scrape_url_markdown(
"https://example.com",
css_selector="article", # 最初に記事にフィルタリング
strip_tags=["script", "style"] # 次にスクリプトとスタイルを削除
)
動作原理
- スクレイピング:URLからHTMLを取得
- フィルタリング(
css_selectorが指定された場合):CSSセレクターを適用して、一致する要素のみを保持 - 処理:マークダウン/テキストに変換するか、リンクを抽出
- 返却:メタデータに
elements_matchedのカウントを含める
CSSセレクターの利点
- ノイズの削減:関連するコンテンツのみを抽出し、広告、ナビゲーション、フッターを無視します。
- 範囲指定抽出:特定のセクションからのみリンクを取得します(例:メインコンテンツから、サイドバーではなく)。
- 効率的:より少ないHTMLを処理し、クリーンな結果を得ます。
- 合成可能:
strip_tagsと一緒に使用して、最大限の制御を行います。
環境変数
Dockerで実行する場合、環境変数を使用してサーバーを構成できます。
TRANSPORT:トランスポートタイプ(streamable-httpまたはsse、デフォルト:streamable-http)HOST:バインドするホスト(デフォルト:0.0.0.0)PORT:バインドするポート(デフォルト:8000)ENABLE_CACHE_TOOLS:キャッシュ管理ツールを有効にする(true,1, またはyesで有効化、デフォルト:false)- 有効にすると、
cache_stats,cache_clear_expired, およびcache_clear_allツールが公開されます。 - セキュリティと簡素化のため、デフォルトでは無効になっています。
- 有効にすると、
プロキシ構成
スクレイパーは、標準の環境変数を通じてHTTP/HTTPSプロキシをサポートしています。これは、企業のファイアウォールの背後で実行する場合、または特定のプロキシを介してトラフィックをルーティングする必要がある場合に便利です。
Docker Composeでのプロキシの使用
プロジェクトルートに.envファイルを作成します(.env.exampleを参照)。
# 非SSLリクエストのHTTPプロキシ
HTTP_PROXY=http://proxy.example.com:8080
http_proxy=http://proxy.example.com:8080
# SSLリクエストのHTTPSプロキシ
HTTPS_PROXY=http://proxy.example.com:8080
https_proxy=http://proxy.example.com:8080
# 特定のホストをプロキシから除外(カンマ区切り)
NO_PROXY=localhost,127.0.0.1,.local
no_proxy=localhost,127.0.0.1,.local
次に、サービスを起動します。
docker-compose up -d
Docker Composeは自動的に.envファイルを読み取り、ビルド時(パッケージインストール用)とランタイム(HTTPリクエスト用)の両方でコンテナに変数を渡します。
Docker Runでのプロキシの使用
docker run -p 8000:8000 \
-e HTTP_PROXY=http://proxy.example.com:8080 \
-e HTTPS_PROXY=http://proxy.example.com:8080 \
-e NO_PROXY=localhost,127.0.0.1,.local \
scraper-mcp:latest
認証付きのプロキシ
プロキシに認証が必要な場合は、URLに資格情報を含めます。
HTTP_PROXY=http://username:password@proxy.example.com:8080
HTTPS_PROXY=http://username:password@proxy.example.com:8080
ビルド時とランタイムのプロキシ
プロキシ構成は2つの段階で機能します。
- ビルド時:Dockerがパッケージをインストールするときに使用されます(apt、uv、pip)
- ランタイム:スクレイパーがHTTPリクエストを行うときに使用されます
大文字と小文字の両方の変数名がサポートされています(例:HTTP_PROXYとhttp_proxy)。
プロキシ構成の検証
コンテナのログを確認して、プロキシ設定が使用されていることを検証します。
docker-compose logs scraper-mcp
requestsライブラリは自動的にこれらの環境変数を尊重し、すべてのHTTP/HTTPSトラフィックを構成されたプロキシを介してルーティングします。
ScrapeOpsプロキシ統合
スクレイパーには、ScrapeOpsとのオプションの統合が含まれています。ScrapeOpsは、高級なプロキシサービスであり、反ボット対策を回避し、JavaScriptをレンダリングし、地理的に制限されたコンテンツにアクセスするのに役立ちます。APIキーが提供されると、ScrapeOpsは自動的に有効になります。
ScrapeOpsとは何ですか?
ScrapeOpsは以下を提供します。
- JavaScriptレンダリング:SPAや動的コンテンツをスクレイピングします。
- 住宅用プロキシ:ブロックされにくくなります。
- 地理的ターゲティング:特定の国のコンテンツにアクセスします。
- 反ボット回避:自動的なヘッダーローテーションとフィンガープリント処理。
- 高い成功率:スマートなリトライと最適化。
ScrapeOpsの有効化
.envファイルにAPIキーを追加するだけです。
# https://scrapeops.io/からAPIキーを取得
SCRAPEOPS_API_KEY=your_api_key_here
これだけです!すべてのスクレイピングリクエストは自動的にScrapeOpsを介してルーティングされます。MCPツールやコードに変更を加える必要はありません。
構成オプション
環境変数を使用してScrapeOpsの動作をカスタマイズできます(完全なリファレンスについては.env.exampleを参照)。
# SPAのJavaScriptレンダリングを有効にする(デフォルト: false)
SCRAPEOPS_RENDER_JS=true
# データセンタープロキシの代わりに住宅用プロキシを使用する(デフォルト: false)
SCRAPEOPS_RESIDENTIAL=true
# 特定の国をターゲットにする(オプション)
SCRAPEOPS_COUNTRY=us
# 最適化せずに元のヘッダーを保持する(デフォルト: false)
SCRAPEOPS_KEEP_HEADERS=true
# ユーザーエージェントローテーションのためのデバイスタイプ(デフォルト: desktop)
SCRAPEOPS_DEVICE=mobile
完全な例の構成
# .envファイル
SCRAPEOPS_API_KEY=your_api_key_here
SCRAPEOPS_RENDER_JS=true
SCRAPEOPS_RESIDENTIAL=true
SCRAPEOPS_COUNTRY=us
SCRAPEOPS_DEVICE=desktop
📄 ライセンス
このプロジェクトは、MITライセンスの下でライセンスされています。
最終更新日: 2025年10月31日
代替品









