CLIツール
D4Vinci/Scrapling avatar
D4Vinci/Scrapling

Scraplingを読む、変化するWeb構造に追従するPythonスクレイピング基盤

単一のリクエストから本格的なクロールまですべてを処理する適応型 Web スクレイピング フレームワーク。

スター 81,121フォーク 8,199PythonBSD-3-Clause

ひと目でわかる

これは何?
D4Vinci/ScraplingのREADMEをもとに、適応型パーサー、取得器、スパイダー、CLI、MCP、導入条件と利用上の境界を整理します。
誰に向いている?
Scraplingは、HTMLの取得から要素抽出、複数セッションのクロールまでを同じPython系の道具で組み立てたい人に向きます。auto_saveとadaptive、セッション、停止再開、形式別エクスポートは運用設計の材料になりますが、Cloudflare Turnstileへの対応、速度、テストカバレッジはREADMEの自己説明です。
商用利用できる?
できます。BSD-3-Clause は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Scraplingが一つにまとめる三つの仕事

D4Vinci/Scraplingは、単一のHTTPリクエストから本格的なクロールまでを扱うPython製Webスクレイピングフレームワークとして紹介されています。役割は、ページを取りに行くfetcher、サイトの変更後にも要素を探し直すparser、並行処理を含むspider frameworkに分かれます。READMEの中心的な説明は、画面の見た目を保存するだけでなく、構造変化に合わせて抽出対象を追跡しようとする点です。

メタデータでは、ライセンスはBSD-3-Clause、既定ブランチはmain、アーカイブ状態はfalseです。2026年8月23日時点の取得情報には、76,924スター、7,704フォーク、4件のオープンイシューが記録されています。公開規模は利用例を探す手掛かりになりますが、対象サイトでの抽出成功率、運用コスト、法的な利用許可を保証するものではありません。

auto_saveとadaptiveが変える要素抽出

READMEのコード例では、最初の抽出で`auto_save=True`を指定して要素の位置を保存し、後の実行で`adaptive=True`を渡して、ページ構造が変化した後にも同じ候補を見つけます。CSSセレクター、XPath、テキスト検索、正規表現、BeautifulSoupに似た`find_all`を使え、親、兄弟、子要素をたどるメソッドも説明されています。HTML文字列を直接扱う独立した`Selector`クラスもあります。

この仕組みは、固定セレクターが少しのレイアウト変更で壊れる問題に対する実装上の選択です。ただし、見つかった要素が意味まで同じだと自動で証明するわけではありません。価格欄と広告欄、本文と推薦欄が入れ替わるサイトでは、抽出値の型、必須項目、ページ内の位置、過去との差分を人間が確認します。READMEの要素類似度やテキスト抽出ベンチマークはプロジェクトの自己報告なので、自社の対象サイトを使う検証結果とは分けて扱います。

Fetcherの選択とセッションの状態

取得層には通常のHTTPリクエストを担う`Fetcher`、ブラウザー自動化を担う`DynamicFetcher`、ステルス指向の取得を担う`StealthyFetcher`があります。各系統にはセッション版があり、cookieやリクエスト間の状態を維持します。`capture_xhr`では、ページ読み込み中に条件へ一致するXHRとfetchのレスポンスを集める機能が説明されています。

READMEは、StealthyFetcherがCloudflare Turnstileなどのアンチボット機構を回避できると主張し、DNS over HTTPS、プロキシローテーション、CDPを通じたリモートブラウザー接続にも触れています。これは対象サイトの防御を無条件に突破してよいという意味ではありません。アクセス許可、利用規約、レート制限、認証情報、個人データの送信先を先に決めます。通常のFetcherで足りる対象にブラウザーやプロキシを持ち込めば、複雑さと費用だけが増えます。

Spiderで大規模処理へ移るときの設計

スパイダーAPIはScrapyに似た形で、`start_urls`、非同期の`parse`、`Request`と`Response`を提供します。READMEに挙げられる運用機能は、並行数の制限、ドメイン単位のスロットリング、複数セッションへのルーティング、チェックポイントによる一時停止と再開、ストリーミング結果、ブロックされたリクエストの自動再試行です。既製の`CrawlSpider`、`SitemapSpider`、`ShopifySpider`があり、JSON、JSONL、CSV、XMLへ書き出せます。

機能が揃っていても、クロール計画が不要になるわけではありません。対象ドメインごとの許可範囲、同時接続数、再試行上限、保存容量、重複排除、停止条件を設定ファイルと監視に落とします。READMEは開発モードでレスポンスをディスクへキャッシュし、再生できると説明しています。これはテストの再現性に役立ちますが、キャッシュに認証ヘッダーや個人情報が残る可能性を確認し、共有前に消去またはマスキングします。

CLIとMCPを追加した利用経路

コマンドラインでは、対話型の`scrapling shell`と、ページ内容をファイルへ抽出する`scrapling extract`がREADMEに示されています。CSSセレクター、ユーザーエージェントの偽装、ヘッドレスモードなどのフラグがあり、curlのリクエストをScrapling用へ変換する操作も説明されています。まずCLIで一つのURLと少数のセレクターを確認し、結果のHTMLと抽出値を保存すると、スパイダーへ進む前の切り分けがしやすくなります。

AI支援スクレイピング向けには組み込みMCPサーバーがあり、呼び出し間でブラウザーセッションを維持し、スクリーンショットを取得し、CDP経由で遠隔ブラウザーを操作できるとREADMEは説明します。コーディングエージェントへ現在のAPIを伝えるエージェントスキルのディレクトリも含まれます。MCPのプロトコル版や対応クライアントの詳細はREADMEに明記されていないため、導入時は依存するクライアントとの組み合わせを限定し、権限とセッション終了を確認します。

Python導入時に分ける依存関係

基本の導入はPython 3.10以上で`pip install scrapling`を実行する手順です。READMEは、基本パッケージにパーサーとその依存関係が含まれ、取得器とスパイダーを使うには`scrapling[fetchers]`を選び、その後に`scrapling install`でブラウザーをダウンロードすると説明します。AI機能、シェル、全機能は`scrapling[ai]`、`scrapling[shell]`、`scrapling[all]`として分けられています。Docker HubとGitHub Container Registryのイメージも案内されています。

依存関係を一度に全部入れると、ブラウザー、OSライブラリ、ネットワーク権限、イメージサイズの影響を把握しづらくなります。解析だけの処理、静的ページの取得、ブラウザーを使う処理を別の環境に分け、出力形式とログを揃えて比較する方が、障害原因を追いやすい設計です。READMEはコードのテストカバレッジ92パーセントと、型ヒントの完全なカバレッジを自己報告しています。自分のPython版、ブラウザー版、対象サイトを組み合わせた動作は別に確認します。

BSDライセンスと利用者側の責任

ScraplingはBSD-3-Clauseライセンスで提供され、著作権者としてKarim Shoairが記載されています。ライセンスは条件付きの再配布を認めますが、ソフトウェアの保証を否認し、サポート、保守、セキュリティの保証は示していません。READMEには教育および研究目的に関する免責と、利用者が適用法を守るべきだという注意もあります。

スクレイピングでは、技術的に取得できることと、取得してよいことを分けます。対象サービスの規約、公開情報の範囲、著作権、データ保護、アクセス制限を確認し、取得データの保存期間と削除要求への対応を決めます。大量取得や防御回避を前提にせず、許可されたエンドポイント、適切なレート、明示的な停止手順から始めます。ScraplingのREADMEが説明する機能、特にステルス取得とプロキシは、組織の審査を通過した用途だけに限定すべきです。

編集部の結論

Scraplingは、HTMLの取得から要素抽出、複数セッションのクロールまでを同じPython系の道具で組み立てたい人に向きます。auto_saveとadaptive、セッション、停止再開、形式別エクスポートは運用設計の材料になりますが、Cloudflare Turnstileへの対応、速度、テストカバレッジはREADMEの自己説明です。まず許可された公開データを対象に小さな選択と低い並行度で試し、対象サイトの規約、robots設定、個人情報の扱い、失敗時の停止条件を確認してから規模を上げてください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート