mcpField
S
Scrapling MCP Server

Scrapling MCP Server

ローカル
scrapling.readthedocs.ioブラウザ自動化90.2k今日更新

Scrapling MCP Server について

Scrapling MCP Server は、ウェブデータを収集する AI エージェントや開発者向けに、Scrapling のスクレイピング機能を公開する MCP サーバーです。HTTP 取得、ステルスブラウザー、ページ解析、並行クロールを組み合わせ、動的ページと CSS セレクターに対応します。

主な機能

  1. 01HTTP リクエストとステルスブラウザー
  2. 02JavaScript ページのレンダリング
  3. 03CSS、XPath、テキスト抽出
  4. 04並行クロールとプロキシローテーション
  5. 05JSON、JSONL、CSV、XML への出力
  6. 06整形済み Markdown の生成

活用シーン

  1. 01AI エージェント経由でウェブ情報を収集・抽出
  2. 02JavaScript のレンダリングが必要なページの収集
  3. 03ウェブサイトの内容を Markdown 化
  4. 04サイトをクロールして構造化データを出力

MCP 対応

AI エージェントに HTTP リクエスト、ブラウザー操作、スクリーンショット、保存済みログイン状態、バックグラウンド API 応答などのスクレイピング機能を公開します。CDP 経由のリモートブラウザーと認証付き HTTP トランスポートにも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"d4vinci-scrapling": {
"command": "uvx",
"args": [
"scrapling"
]
}
}
}
起動コマンドuvx scrapling

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiscrapling0.4.15
ocighcr.io/d4vinci/scrapling

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Scrapling のポスター
現代のウェブ向けの手軽なウェブスクレイピング

D4Vinci%2FScrapling | Trendshift Star History Rank
README بالعربية README en Español README em Português (Brasil) README en Français README auf Deutsch 简体中文版自述文件 日本語のREADME Русская версия README 한국어 README
Tests PyPI version Docker Pulls PyPI package downloads Static Badge OpenClaw Skill
Discord X (formerly Twitter) Follow
Supported Python versions

選択メソッド · フェッチャー · スパイダー · プロキシのローテーション · CLI · MCP

Scraplingは、 高速なHTTPリクエスト、ステルスブラウザー、高度な解析、並行クロールを1つのライブラリに統合したPython製のWebスクレイピングフレームワークです。

静的ページのスクレイピング、JavaScriptのレンダリング、Webサイトとの対話、背後にあるAPI呼び出しからのデータ抽出ができます。再利用可能なセッション、プロキシのローテーション、自動再試行、一時停止と再開、組み込みのデータエクスポートを備えたクローラーを構築できます。

Python、ターミナル、またはMCPサーバーとエージェントスキルを介してAIエージェントから利用できます。いくつかのフィールドの抽出から、Webサイト全体をクリーンなMarkdownとして収集することまで、Scraplingはスクレイピングのワークフロー全体をカバーします。

Scraplingでできること

  • フェッチと操作:高速なHTTPリクエスト、ステルスブラウザー、JavaScriptのレンダリング、Cloudflare Turnstile/Interstitialへの対応、永続セッション、バックグラウンドでのAPIキャプチャ。
  • 解析と抽出:CSS、XPath、テキストと正規表現による検索、適応型の要素追跡、類似要素の照合、クリーンなMarkdown出力。
  • クロールとエクスポート:並行スパイダー、プロキシのローテーション、再試行、AutoThrottle、一時停止と再開、ストリーミング、すぐに使えるテンプレート、JSON/JSONL/CSV/XMLへのエクスポート。
  • AIまたはターミナルからスクレイピング:AIエージェントが閲覧やデータ抽出に使えるMCPサーバー、エージェントスキル、CLIコマンド、対話型シェル。

まずは1ページから始めましょう:

from scrapling.fetchers import Fetcher

page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()
print(quotes)

または、スパイダーを使って規模を拡大しましょう:

from scrapling.spiders import Spider, Response

class QuotesSpider(Spider):
    name = "quotes"
    start_urls = ["https://quotes.toscrape.com/"]

    async def parse(self, response: Response):
        for quote in response.css('.quote'):
            yield {
                "text": quote.css('.text::text').get(),
                "author": quote.css('.author::text').get(),
            }

result = QuotesSpider().start()
print(len(result.items))
result.items.to_json("quotes.json")

10が出力され、引用文と著者がquotes.jsonに保存されます。

DataImpulseは、お客様のビジネスに合わせたプロキシサービスの開発を専門としています。どこからでもリクエストを送信し、データを収集して、高品質なプロキシで高速な接続をご利用ください。

# プラチナスポンサー
README の画像 NodeMaven - Webスクレイピングと自動化に最適な、業界最高品質のIPを提供する最も効率的なプロキシプロバイダーです。コード SCRAPLING35 を使用すると、35%割引になります。
README の画像 ScraplingはCloudflare Turnstileに対応しています。エンタープライズレベルの保護には、 Hyper Solutions がAkamai、DataDome、Kasada、Incapsula向けに有効なボット対策トークンを生成するAPIエンドポイントを提供します。シンプルなAPI呼び出しで利用でき、ブラウザーの自動化は不要です。
README の画像 Evomi :$0.49/GBから利用できるレジデンシャルプロキシ。Chromiumを完全に偽装するスクレイピングブラウザー、レジデンシャルIP、自動CAPTCHA解決、ボット対策回避を提供します。
手間なく結果を得られるスクレイパーAPI。MCPとN8Nの統合に対応しています。
README の画像 Webスクレイピング専門のニュースレター第1位であるThe Web Scraping ClubによるScraplingの詳細なレビュー(2025年11月)をご覧ください。
README の画像 Swiftproxyは、195以上の国と地域にまたがる8,000万以上のIPを持つ、拡張性に優れたレジデンシャルプロキシを提供します。高速で信頼性の高い接続、自動ローテーション、強力なブロック対策性能を備えています。無料トライアルを利用できます。
README の画像 Bytefulは、倫理的に調達されたレジデンシャル、モバイル、ISP、データセンタープロキシに加え、スクレイピングとAI自動化ツールを提供します。コード SCRAPLING10 を使用すると、レジデンシャルプロキシが10%割引になります。
README の画像 ProxyLane:Scraplingの実行時にCAPTCHAを90%削減します。実在するP2Pレジデンシャルデバイスは2,800万台、クリーンなIPは98.7%、対象国は195か国です。都市/ISP/郵便番号でのターゲティング、固定/ローテーションセッションに対応し、トラフィックの有効期限はありません。350 MBを$1.95でお試しいただけます。コード SCRAPEANDTAKE で25%割引になります。
README の画像 LundProxy:GBごとの支払いはもう不要です。1億以上のIP、190か国以上に対応した無制限のレジデンシャルトラフィックを、帯域幅に応じてお支払いいただけます。50 Mbpsのレジデンシャルプロキシを無料で試せるトライアルをお申し込みください。
README の画像 DataImpulseなら$1/GB。倫理的に調達されたファーストパーティプロキシです。9,000万以上のIP、195か国以上に対応。レジデンシャル、データセンター、モバイルから選べます。従量課金制のため、サブスクリプションは不要です。トラフィックの有効期限はありません。
ここに広告を掲載しませんか?[こちら](https://github.com/sponsors/D4Vinci/sponsorships?tier_id=586646)をクリックしてください # スポンサー

README の画像


README の画像 README の画像 README の画像 README の画像 README の画像

ここに広告を掲載しませんか?こちらをクリックして、ご希望のプランをお選びください!


主な機能

スパイダー — フル機能のクロールフレームワーク
  • 🕷️ Scrapy風のスパイダーAPI:start_urls、非同期のparseコールバック、Request/Responseオブジェクトを使ってスパイダーを定義できます。
  • ⚡ 並行クロール:同時実行数の上限、ドメインごとのスロットリング、ダウンロード遅延を設定できます。
  • 🔄 マルチセッション対応:HTTPリクエストとステルス対応のヘッドレスブラウザーを、1つのスパイダーから統一されたインターフェースで利用できます。リクエストはIDを指定して異なるセッションに振り分けられます。
  • 💾 一時停止と再開:crawldirを使って、保留中のリクエストと確認済みのURLを保存できます。Ctrl+Cを押すと安全に停止し、同じディレクトリを指定して再開できます。
  • 📡 ストリーミングモード:async for item in spider.stream()を使って、スクレイピングした項目を到着と同時にリアルタイム統計とともにストリーム配信できます。UI、パイプライン、長時間のクロールに最適です。
  • 🛡️ ブロックされたリクエストの検出:カスタマイズ可能なロジックで、ブロックされたリクエストを自動検出して再試行します。
  • 🚦 AutoThrottle:遅延時間を推測する必要はありません。スパイダーはウェブサイトの応答速度に応じてドメインごとの遅延時間を自動調整します。ウェブサイトがブロックやレート制限を開始すると、その遅延時間を2倍にするか、Retry-Afterで指定された時間だけ待機し、ブロックが解除されると速度を上げます。
  • 🤖 Robots.txtへの準拠:オプションのrobots_txt_obeyフラグを設定すると、ドメインごとのキャッシュを使いながら、Disallow、Crawl-delay、Request-rateディレクティブに従います。
  • 🧪 開発モード:初回実行時にレスポンスをディスクにキャッシュし、以降の実行で再生します。対象サーバーに再アクセスすることなく、parse()ロジックを繰り返し調整できます。
  • 🧩 すぐに使えるスパイダーテンプレート:ルールベースのリンク追跡にはCrawlSpider、サイトマップやrobots.txtに基づくクロールにはSitemapSpider、XML/RSSやCSVフィードの反復処理にはXMLFeedSpider/CSVFeedSpider、公開Shopifyストアからバリエーションごとに商品を収集するにはShopifySpiderを使って、定型コードを省略できます。
  • 🔗 リンク抽出:許可/拒否パターン、ドメインフィルター、CSS/XPathスコープ、拡張子フィルタリング、正規化に対応した単独のLinkExtractorプリミティブを提供します。テンプレート内でも単独でも使えます。
  • 📦 組み込みエクスポート:フックや独自のパイプラインに加え、組み込みのJSON/JSONL/CSV/XMLエクスポーターを使って、result.items.to_json()、to_jsonl()、to_csv()、to_xml()で結果をエクスポートできます。
セッションサポートによる高度な Web サイトの取得
  • HTTP リクエスト:Fetcher クラスを使った高速で目立ちにくい HTTP リクエストです。ブラウザーの TLS フィンガープリントやヘッダーを偽装し、HTTP/3 を使用できます。
  • 動的読み込み:Playwright の Chromium と Google の Chrome に対応する StealthyFetcher クラスで、ブラウザーを完全に自動化して動的な Web サイトを取得できます。
  • ボット対策の回避:StealthyFetcher とフィンガープリントの偽装による高度なステルス機能を備えています。自動化によって、あらゆる種類の Cloudflare Turnstile/Interstitial を簡単に回避できます。
  • セッション管理:FetcherSession クラスと StealthySession クラスで永続セッションをサポートし、リクエスト間で Cookie と状態を管理できます。
  • プロキシのローテーション:組み込みの ProxyRotator により、すべてのセッションタイプで循環式またはカスタムのローテーション戦略を利用できるほか、リクエストごとにプロキシを指定できます。
  • ドメインと広告のブロック:特定のドメインとそのサブドメインへのリクエストをブロックするか、ブラウザーベースのフェッチャーで組み込みの広告ブロック(既知の広告・トラッカードメイン約3,500件)を有効にできます。
  • DNS リークの防止:オプションの DNS-over-HTTPS サポートにより、DNS クエリを Cloudflare の DoH 経由でルーティングし、プロキシ使用時の DNS リークを防ぎます。
  • リモートブラウザー:ブラウザーをローカルで起動する代わりに、cdp_url を使って、同じマシン上、別のホスト上、またはマネージドブラウザープロバイダー上ですでに稼働しているブラウザーに CDP 経由で接続できます。また、executable_path を指定すれば、任意のブラウザーフェッチャーから独自の Chromium ビルドを利用できます。
  • バックグラウンドでの API キャプチャ:ブラウザーセッションで record_requests=True を有効にし、保存されたレスポンスを session.network.search(limit=None) で検索できます。リクエストを再送信することなく、ページの読み込みをまたいで API データや HTTP エラーを読み取れます。履歴には上限があり、テキスト形式のレスポンス本文が保存されます。
  • 非同期サポート:すべてのフェッチャーで完全な非同期処理をサポートし、専用の非同期セッションクラスも用意しています。
パースとデータ抽出
  • 🔄 スマートな要素追跡:インテリジェントな類似度アルゴリズムを使って、Web サイトの変更後に要素を再配置します。
  • 🎯 柔軟なスマート選択:CSS セレクター、XPath セレクター、フィルターベースの検索、テキスト検索、正規表現検索などに対応しています。
  • 🔍 類似要素の検索:見つかった要素に類似する要素を自動的に特定します。
AI 機能
  • 🤖 MCP サーバー:AI チャットボットやエージェント(Claude/Cursor など)が Scrapling を使ってスクレイピングできるようにします。HTTP リクエスト、ブラウザー操作、スクリーンショット、保存済みのログイン状態、バックグラウンドの API レスポンスを利用できます。適切なツールを備えたステルスブラウザーを使用し、作業中に対象の AI モデルが遭遇する CAPTCHA を回避できるようにします(Cloudflare ソルバーも備えています)。モデルに送信するコンテンツを減らすためのさまざまな手法を用い、広告をブロックし、プロンプトインジェクションから保護します。CDP 経由のリモートブラウザーと、認証オプション付きの HTTP トランスポートも利用できます。(デモ動画)
  • 🧠 エージェントスキル:すぐにインストールできるエージェントスキルです。コーディングエージェントにライブラリ全体を学習させることで、推測ではなく最新の API に沿った Scrapling コードを生成できます。
  • 📚 RAG 対応 Markdown:1 行のコード(page.markdown())で任意のページをクリーンでサニタイズ済みの LLM 対応 Markdown に変換できます。また、ContentSpider テンプレートを使えば、LLM を介さずに Web サイト全体を Markdown コーパスにクロールできます。(ドキュメント)
高性能で実戦検証済みのアーキテクチャ
  • 🚀 圧倒的な高速性:ほとんどの Python スクレイピングライブラリを上回るよう、パフォーマンスを最適化しています。
  • 🔋 メモリ効率:メモリ使用量を最小限に抑えるため、データ構造と遅延読み込みを最適化しています。
  • ⚡ 高速な JSON シリアライズ:標準ライブラリの10倍の速度です。
  • 🏗️ 実戦での検証済み:Scrapling はテストカバレッジが92%で、型ヒントのカバレッジも完全です。さらに、過去1年間、数百人の Web スクレイパーに日常的に使用されています。
開発者/Web スクレイピングに使いやすい機能
  • 🎯 インタラクティブな Web スクレイピングシェル:Scrapling との連携、ショートカット、Web スクレイピングスクリプトの開発を効率化する新しいツールを備えた、オプションの組み込み IPython シェルです。curl リクエストを Scrapling リクエストに変換したり、リクエストの結果をブラウザーで表示したりできます。
  • 🚀 ターミナルから直接利用:オプションで Scrapling を使えば、コードを一行も書かずに URL をスクレイピングできます。
  • 🛠️ 豊富なナビゲーション API:親、兄弟、子要素をたどるメソッドを備えた、高度な DOM トラバーサル機能です。
  • 🧬 強化されたテキスト処理:正規表現、クリーニング用メソッド、最適化された文字列操作を組み込みで利用できます。
  • 📝 セレクターの自動生成:あらゆる要素に対して、堅牢な CSS/XPath セレクターを生成します。
  • 🔌 使い慣れた API:Scrapy/BeautifulSoup に似ており、Scrapy/Parsel と同じ疑似要素を使用します。
  • 🤝 Scrapy とのシームレスな連携:すでに Scrapy を利用していますか?任意のコールバックに scrapling_response デコレーターを付けると、すでに取得済みのレスポンスを Scrapling のパーサーで解析できます。書き換えは不要です。
  • 📘 完全な型情報:充実した型ヒントにより、優れた IDE サポートとコード補完を利用できます。変更のたびに、コードベース全体を PyRight と MyPy で自動スキャンします。
  • 🔋 すぐに使える Docker イメージ:リリースごとに、すべてのブラウザーを含む Docker イメージが自動的にビルドされ、プッシュされます。

はじめに

詳しい説明に入る前に、Scrapling でできることを簡単に見てみましょう。

基本的な使い方

セッションに対応した HTTP リクエスト

from scrapling.fetchers import Fetcher, FetcherSession

with FetcherSession(impersonate='chrome') as session:  # Use latest version of Chrome's TLS fingerprint
    page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
    quotes = page.css('.quote .text::text').getall()

# Or use one-off requests
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()

高度なステルスモード

from scrapling.fetchers import StealthyFetcher, StealthySession

with StealthySession(headless=True, solve_cloudflare=True) as session:  # Keep the browser open until you finish
    page = session.fetch('https://nopecha.com/demo/cloudflare', google_search=False)
    data = page.css('#padded_content a').getall()

# Or use one-off request style, it opens the browser for this request, then closes it after finishing
page = StealthyFetcher.fetch('https://nopecha.com/demo/cloudflare', solve_cloudflare=True)
data = page.css('#padded_content a').getall()

完全なブラウザー自動化

from scrapling.fetchers import StealthyFetcher, StealthySession

with StealthySession(headless=True, disable_resources=False, network_idle=True) as session:  # Keep the browser open until you finish
    page = session.fetch('https://quotes.toscrape.com/', load_dom=False)
    data = page.xpath('//span[@class="text"]/text()').getall()  # XPath selector if you prefer it

# Or use one-off request style, it opens the browser for this request, then closes it after finishing
page = StealthyFetcher.fetch('https://quotes.toscrape.com/')
data = page.css('.quote .text::text').getall()
スパイダー

同時リクエスト、複数のセッションタイプ、一時停止/再開に対応したクローラーを構築できます。

from scrapling.spiders import Spider, Response

class QuotesSpider(Spider):
    name = "quotes"
    start_urls = ["https://quotes.toscrape.com/"]
    concurrent_requests = 10
    
    async def parse(self, response: Response):
        for quote in response.css('.quote'):
            yield {
                "text": quote.css('.text::text').get(),
                "author": quote.css('.author::text').get(),
            }
            
        next_page = response.css('.next a')
        if next_page:
            yield response.follow(next_page[0].attrib['href'])

result = QuotesSpider().start()
print(f"Scraped {len(result.items)} quotes")
result.items.to_json("quotes.json")

1 つのスパイダーで複数のセッションタイプを使用できます。

from scrapling.spiders import Spider, Request, Response
from scrapling.fetchers import FetcherSession, AsyncStealthySession

class MultiSessionSpider(Spider):
    name = "multi"
    start_urls = ["https://example.com/"]
    
    def configure_sessions(self, manager):
        manager.add("fast", FetcherSession(impersonate="chrome"))
        manager.add("stealth", AsyncStealthySession(headless=True), lazy=True)
    
    async def parse(self, response: Response):
        for link in response.css('a::attr(href)').getall():
            # Route protected pages through the stealth session
            if "protected" in link:
                yield Request(link, sid="stealth")
            else:
                yield Request(link, sid="fast", callback=self.parse)  # explicit callback

次のようにスパイダーを実行すると、チェックポイントを使って長時間のクロールを一時停止し、再開できます。

QuotesSpider(crawldir="./crawl_data").start()

crawldir を設定している場合は、Ctrl+C を押すと保留中のリクエストと確認済み URL が保存されます。同じ crawldir を指定して再起動すると、続きから再開できます。スクレイピングしたアイテムは別途保存してください。

クロールのロジックを自分で書かずに、すぐに使えるテンプレートを利用することもできます。たとえば、Shopify ストアの商品カタログ全体を取得できます。

from scrapling.spiders import ShopifySpider

class MyStore(ShopifySpider):
    target_website = "example.com"

result = MyStore().start()  # Every product in the store, one item per variant

このテンプレートは、公開コレクションエンドポイントから公開されている商品を読み込みます。バリエーションごとに 1 アイテムです。

高度な解析とナビゲーション
from scrapling.fetchers import Fetcher

# Rich element selection and navigation
page = Fetcher.get('https://quotes.toscrape.com/')

# Get quotes with multiple selection methods
quotes = page.css('.quote')  # CSS selector
quotes = page.xpath('//div[@class="quote"]')  # XPath
quotes = page.find_all('div', {'class': 'quote'})  # BeautifulSoup-style
# Same as
quotes = page.find_all('div', class_='quote')
quotes = page.find_all(['div'], class_='quote')
quotes = page.find_all(class_='quote')  # and so on...
# Find element by text content
quotes = page.find_by_text('Albert Einstein', first_match=False)

# Advanced navigation
quote_text = page.css('.quote')[0].css('.text::text').get()
quote_texts = page.css('.quote').css('.text::text').getall()  # Chained selectors
first_quote = page.css('.quote')[0]
author = first_quote.css('.author::text').get()
next_quote = first_quote.next
parent_container = first_quote.parent

# Element relationships and similarity
similar_elements = first_quote.find_similar()
below_elements = first_quote.below_elements

以下のように、Web サイトを取得せずにパーサーをすぐに使うこともできます。

from scrapling.parser import Selector

page = Selector("<html>...</html>")

まったく同じように動作します!

非同期セッション管理の例
import asyncio
from scrapling.fetchers import FetcherSession, AsyncStealthySession

async def main():
    async with FetcherSession(http3=True) as http_session:  # `FetcherSession` is context-aware and can work in both sync/async patterns
        page1 = await http_session.get('https://quotes.toscrape.com/')
        page2 = await http_session.get('https://quotes.toscrape.com/page/2/', impersonate='chrome')
        print(len(page1.css('.quote')), len(page2.css('.quote')))

    async with AsyncStealthySession(max_pages=2) as browser_session:
        urls = ['https://quotes.toscrape.com/js/', 'https://quotes.toscrape.com/js/page/2/']
        pages = await asyncio.gather(*(browser_session.fetch(url, wait_selector='.quote') for url in urls))
        print([len(page.css('.quote')) for page in pages])

asyncio.run(main())

CLI とインタラクティブシェル

Scrapling には、強力なコマンドラインインターフェイスが含まれています。

asciicast

インタラクティブな Web スクレイピングシェルを起動します

pip install "scrapling[shell]"
scrapling shell

プログラミングせずに、ページを直接ファイルに抽出できます。--css-selector でコンテンツを指定するか、--ai-targeted で body のコンテンツを選択してサニタイズします。テキストには .txt、Markdown には .md、HTML には .html を使用してください。

scrapling extract get 'https://quotes.toscrape.com/' quotes.md
scrapling extract get 'https://quotes.toscrape.com/' quotes.txt --css-selector '.quote' --impersonate 'chrome'
scrapling extract fetch 'https://quotes.toscrape.com/js/' quotes.md --css-selector '.quote' --wait-selector '.quote' --no-headless
scrapling extract fetch 'https://nopecha.com/demo/cloudflare' captchas.html --css-selector '#padded_content a' --solve-cloudflare

メモ

MCP サーバーやインタラクティブな Web スクレイピングシェルなど、ほかにも多くの機能がありますが、このページを簡潔に保つために割愛しています。詳しいドキュメントはこちらをご覧ください。

パフォーマンスベンチマーク

Scrapling は高機能なだけでなく、非常に高速です。以下のベンチマークでは、Scrapling のパーサーを、ほかの人気ライブラリの最新バージョンと比較しています。

テキスト抽出速度テスト(ネストされた要素 5000 個)
#ライブラリ時間(ms)Scrapling との比較
1Scrapling1.991.0x
2Parsel/Scrapy2.061.035
3Raw Lxml2.561.286
4PyQuery23.98~12x
5Selectolax197.02~99x
6MechanicalSoup1545.15~776.5x
7BS4 with Lxml1562.1~785.0x
8BS4 with html5lib3412.73~1714.9x
要素の類似検索とテキスト検索のパフォーマンス

Scrapling の適応型要素検索機能は、他の選択肢を大幅に上回るパフォーマンスを発揮します。

ライブラリ時間(ms)Scrapling 比
Scrapling2.31.0x
AutoScraper12.585.47x

すべてのベンチマークは、100 回以上の実行の平均値です。測定方法については、benchmarks.py をご覧ください。

インストール

Scrapling には Python 3.10 以降が必要です。

pip install scrapling

重要

このインストールに含まれるのは、パーサーエンジンとその依存関係のみで、フェッチャーやコマンドラインの依存関係は含まれません。そのため、上記の例のように scrapling.fetchers や scrapling.spiders から何かをインポートすると、このインストールだけでは ModuleNotFoundError が発生します。フェッチャーやスパイダーを使用する場合は、以下の手順に従って、まずフェッチャーの依存関係をインストールしてください。

オプションの依存関係
  1. 以下の追加機能、フェッチャー、またはそのクラスを使用する場合は、次の手順でフェッチャーの依存関係とブラウザーの依存関係をインストールする必要があります。

    pip install "scrapling[fetchers]"
    
    scrapling install           # 通常のインストール
    scrapling install  --force  # 強制再インストール
    

    これにより、すべてのブラウザーに加え、システム依存関係とフィンガープリント操作の依存関係もダウンロードされます。

    または、次のようなコマンドを実行する代わりに、コードからインストールできます。

    from scrapling.cli import install
    
    install([], standalone_mode=False)          # 通常のインストール
    install(["--force"], standalone_mode=False) # 強制再インストール
    
  2. 追加機能:

    • MCP サーバー機能をインストールします:
      pip install "scrapling[ai]"
      
    • (RAG システムの構築) の依存関係をインストールします:
      pip install "scrapling[rag]"
      
    • シェル機能(Web スクレイピングシェルと extract コマンド)をインストールします:
      pip install "scrapling[shell]"
      
    • すべてをインストールします:
      pip install "scrapling[all]"
      

    ブラウザーフェッチャーが必要な場合は、scrapling install を実行してください。HTTP リクエストにはブラウザーのインストールは必要ありません。

Docker

DockerHub から、すべての追加機能とブラウザーを含む Docker イメージを次のコマンドでインストールすることもできます:

docker pull pyd4vinci/scrapling

または、GitHub レジストリからダウンロードできます:

docker pull ghcr.io/d4vinci/scrapling:latest

このイメージは、GitHub Actions とリポジトリの main ブランチを使用して自動的にビルドおよびプッシュされます。

貢献

皆さまからの貢献を歓迎します!作業を始める前に、貢献ガイドラインをお読みください。

免責事項

注意

このライブラリは、教育および研究目的でのみ提供されています。このライブラリを使用することで、地域および国際的なデータスクレイピングとプライバシーに関する法律を遵守することに同意したものとみなされます。作者および貢献者は、このソフトウェアの誤用について一切責任を負いません。ウェブサイトの利用規約と robots.txt ファイルを必ず尊重してください。

🎓 引用

研究目的でこのライブラリを使用した場合は、以下の引用情報を記載してください:

  @misc{scrapling,
    author = {Karim Shoair},
    title = {Scrapling},
    year = {2024},
    url = {https://github.com/D4Vinci/Scrapling},
    note = {A Python Web Scraping framework for everything from a single request to a full-scale crawl!}
  }

ライセンス

この作品は BSD-3-Clause ライセンスの下でライセンスされています。

謝辞

このプロジェクトには、以下から改変したコードが含まれています:

  • Parsel(BSD License)- translator サブモジュールに使用

Karim Shoair が ❤️ を込めてデザイン・制作しました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。