D4Vinci/Scrapling

モダンなウェブサイトから何千ものデータを数行のPythonコードでスクレイピングできるフレームワークです。

開発の材料自由に使える · BSD-3-Clause自動化・ワークフローPython難易度
86,352👀 1620 保存
8,854フォーク3Issue
デモ・公式サイトをひらくscrapling.readthedocs.io

中辛 の解説

Python用の統合ウェブスクレイピングフレームワークです。HTTP取得とセッション管理、ステルスモード(Cloudflare回避可能)、ブラウザ自動化、複数セッション管理、並列リクエスト、ポーズ・レジューム機能を備えています。初心者向けのワンラインコード例から、複雑なクローラー構築まで、段階的に使用可能です。デモはREADMEに複数のPythonコード例で示されており、すぐに試せます。

こんなリポジトリです

こんなときに便利です

  • ECサイトやニュースサイトから定期的に大量の商品情報や記事を自動収集する場合
  • CloudflareやTurnstileなどの反ボット対策が施されたサイトからのデータ抽出が必要な場合
  • 複数のセッションを使い分けて、通常リクエストと保護されたページのスクレイピングを同時に実行したい場合

主な機能

ウェブサイト設計変更に自動対応する適応型パーサーCloudflareやTurnstileを標準搭載で回避複数セッション管理、自動プロキシローテーション、並列リクエスト処理

ほかとの違い

単発リクエストから大規模クローラーまで、ブラウザ制御と軽量ボットが統合されており、Scrapyより学習曲線が緩やかで、Playwrightとの組み合わせより高レベルな機能をワンライブラリで提供します。

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

準備するもの

  • Python 3.8以上
  • Playwright(ブラウザ自動化時のみ)

すぐに始める

  1. Scraplingをpipで導入します。
pip install scrapling
  1. 簡単なHTTPリクエストを実行します。
python -c "from scrapling.fetchers import Fetcher; page = Fetcher.get('https://quotes.toscrape.com/'); print(page.css('.quote .text::text').getall()[:2])"
  1. セッション機能を使ったスクリプトを作成します。
cat > scrape_example.py << 'EOF'
from scrapling.fetchers import FetcherSession

with FetcherSession(impersonate='chrome') as session:
    page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
    quotes = page.css('.quote .text::text').getall()
    print(f'取得した引用句: {len(quotes)}件')
EOF
python scrape_example.py
  1. クローラー用スクリプトを作成します。
cat > spider_example.py << 'EOF'
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(),
            }

result = QuotesSpider().start()
print(f'取得件数: {len(result.items)}')
EOF
python spider_example.py
  1. ステルスモードでクラウドフレア対策を有効にします。
cat > stealth_example.py << 'EOF'
from scrapling.fetchers import StealthyFetcher

page = StealthyFetcher.fetch('https://nopecha.com/demo/cloudflare')
data = page.css('#padded_content a').getall()
print(f'取得: {len(data)}件')
EOF
python stealth_example.py
  1. 一時停止・再開機能付きでクローラーを実行します。
python spider_example.py  # Ctrl+Cで中断、同じコマンドで再開

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try D4Vinci/Scrapling

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

86,3527日間の増加数を計算するための比較データが不足しています

確認日時

使いやすさ · まねしやすいか

まねしやすいサンプル評点 52/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2024 年に作成

「自動化・ワークフロー」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/D4Vinci/Scrapling.svg)](https://www.gitbap.com/r/D4Vinci/Scrapling)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る