OSS探訪GitHubでログイン

Webサイトを巡回し、抽出した構造化データをパイプラインへ流す

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
64,578
主要言語
Python
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/10/04
ページ内ナビ

概要

Scrapyは、リンクをたどる処理、ページから必要な値を抜き出す処理、得られた項目を検証・保存する処理を分けて組み立てられるPythonのWebクローリングフレームワークです。定期収集や複数ページにまたがる調査を、一度きりのスクリプトから保守できる処理へ移したい場面に向きます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

巡回規則と抽出規則をSpiderにまとめる

Spiderは最初のURLから応答を受け取り、CSSセレクターまたはXPathで値や次のリンクを選びます。非同期のダウンローダーが複数の要求を並行処理し、Item Pipelineは抽出結果の検証、重複除去、ファイルやデータベースへの保存を段階的に担当できます。Downloader MiddlewareやSpider Middlewareを使えば、要求・応答や抽出項目に横断的な処理も差し込めます。

出典:[1][2]

向いている用途

継続的な収集を再現できるプロジェクトとして管理する

商品一覧、公開情報、研究用データなど、同じ規則で多数のページを定期的にたどる用途に適しています。まず少数のURLで必要な項目と次ページへの遷移を確かめ、期待するデータ形をPipelineで検証してから対象範囲を広げると、誤収集や無駄な要求を抑えられます。

出典:[2][3]

導入前の確認

対象サイトの規則と変更に合わせて速度を制御する

2.19.0はPython 3.10以上を必要とします。対象サイトの利用条件、robots.txt、認証や個人情報の扱いを確認し、CONCURRENT_REQUESTS、CONCURRENT_REQUESTS_PER_DOMAIN、DOWNLOAD_DELAYなどを負荷に合わせて設定してください。ページ構造の変更はセレクターを壊すため、代表ページを使った検証と失敗時の監視も必要です。GitHubはライセンスをBSD-3-Clauseと表示しています。

出典:[4][5][6][7]

参考にした公式資料

  1. [1]Scrapy 2.19.0 overview(2026-10-04)
  2. [2]Scrapy 2.19.0 tutorial(2026-10-04)
  3. [3]Scrapy 2.19.0 architecture(2026-10-04)
  4. [4]Scrapy 2.19.0 settings(2026-10-04)
  5. [5]Scrapy 2.19.0 package metadata(2026-10-04)
  6. [6]scrapy/scrapy GitHub repository metadata(2026-10-04)
  7. [7]Scrapy 2.19.0 LICENSE(2026-10-04)
編集部からの補足

収集量を増やす前に、対象サイトの利用条件とrobots.txtを確認し、セレクターの変更追従コスト、同時要求数、待機時間を小さな対象範囲で見積もると判断しやすくなります。

3ステップで試す

  1. 1

    Python環境を分ける

    Python 3.10以上とmacOSまたはLinuxのPOSIXシェルを前提に、試行用の仮想環境を作成して有効にします。以降も同じ端末と作業ディレクトリを使います。

    python3 -m venv scrapy-demo-env && . scrapy-demo-env/bin/activate
  2. 2

    Scrapy 2.19.0を導入する

    確認した固定版を仮想環境へ導入し、プロジェクト作成コマンドを使える状態にします。

    python -m pip install "Scrapy==2.19.0"
  3. 3

    Spiderを作成して登録を確かめる

    外部サイトへ要求を送らずにプロジェクトとexample.com向けSpiderを生成し、Scrapyがexampleを認識できることを確認します。

    scrapy startproject tutorial && cd tutorial && scrapy genspider example example.com && test "$(scrapy list)" = "example"
公式READMEで確認

成長

成長の推移 · 直近30日

64,578 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
148
Open PR
143

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • python
  • scraping
  • crawling
  • framework
  • crawler
  • hacktoberfest
  • web-scraping
  • web-scraping-python
Stars
64,578
Forks
11,989
Watchers
1,758
Open Issues
151
Contributors
374
所有者種別
Organization
主要言語
Python
ライセンス
BSD-3-Clause
リポジトリ最終更新
2026/10/04

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
Scrapyとは?Web巡回とデータ抽出を自動化 | OSS探訪