TopGit
GitHub Repo Review

Scrapy: Web Scraping Framework for Python

scrapy/scrapy
STopGit review image for scrapy/scrapy
Review by Topgit.dev for scrapy/scrapy, with GitHub repository stats and README context.
Quick verdict

Scrapy is a Python framework for crawling websites and pulling structured data out of them, maintained by Zyte (formerly Scrapinghub) with outside contributors. It ships on PyPI and conda-forge and carries a permissive BSD-3-Clause license, signs of a project built to be depended on, not a weekend script. Reach for it when building a scraper meant to last; skip it if you only need one page and a plain HTTP request would do.

Stars
โ˜… 63.7k
Forks
โ‘‚ 11.9k
Contributors
๐Ÿ‘ฅ 741
Language
Python
License
BSD-3-Clause
Topic
Automation
Updated
Aug 2026

What Scrapy is for web data extraction

Scrapy is a web crawling and scraping framework for Python, published on PyPI and conda-forge under a BSD-3-Clause license. Per its GitHub description, it's built to pull structured data out of websites instead of leaving you to hand-roll a parser for every site, and it's cross-platform, requiring Python 3.10 or newer. Zyte (formerly Scrapinghub) maintains it along with a wider group of outside contributors.

Core capabilities of Scrapy

  • โœ“Ships as an installable PyPI package (`pip install scrapy`) and also as a conda-forge package, so it drops into whichever Python environment a team already manages.
  • โœ“Runs on Python 3.10 or newer, per the version badge in the repository.
  • โœ“Maintained by Zyte (formerly Scrapinghub) plus a wider base of outside contributors credited on GitHub.
  • โœ“Carries a public GitHub Actions test suite and Codecov coverage reporting, so changes to the framework get checked before they ship.
  • โœ“Licensed BSD-3-Clause, a permissive license with no copyleft obligation for projects that depend on it.
  • โœ“Has a DeepWiki badge in the README linking to deepwiki.com/scrapy/scrapy.
  • โœ“Tagged on GitHub under crawler, crawling, scraping, web-scraping, and framework topics, and participates in Hacktoberfest.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history โ†—

Getting started with Scrapy

Installation is one command: `pip install scrapy` pulls the package from PyPI, and a conda-forge build is available too, per the badge in the README. Past that single step, the README doesn't walk through project setup or a first run inline; it hands off to the documentation site at docs.scrapy.org for everything else. If you want to contribute code rather than just use the package, the README points to a separate contributing guide instead of describing the process itself.

Basic Scrapy usage

Basic usage isn't documented in the README itself. It defers entirely to the external documentation site rather than showing a first spider, a CLI command, or a minimal working example inline. Anyone evaluating Scrapy from the GitHub page alone has to click through to that documentation before seeing any actual code, since no usage snippet ships in the repository's own README.

Strengths

  • โœ“Backed by an established maintainer (Zyte, formerly Scrapinghub) rather than a single hobbyist maintainer, per the README.
  • โœ“Distributed two ways, PyPI and conda-forge, so it fits into whichever Python packaging workflow a team already has.
  • โœ“Runs a public CI test suite and tracks code coverage via Codecov, both visible as badges on the repository.
  • โœ“BSD-3-Clause licensing keeps the legal overhead low for teams that want to depend on it commercially.
  • โœ“A DeepWiki page is linked directly from the README, alongside the standard docs link.

Potential Scrapy challenges

  • โ–ณThe README shows no usage example, spider skeleton, or CLI command inline; you have to leave GitHub and read the separate documentation site before writing a line of code.
  • โ–ณNo release date or changelog appears in the facts available from the repository page, so there is no way to gauge release recency beyond the live PyPI version badge.
  • โ–ณRequires Python 3.10 or newer, which rules it out for any codebase still pinned to an older Python release.
  • โ–ณThe README doesn't describe what happens right after installation: no quickstart, no sample project layout, no explanation of what a first script looks like.
  • โ–ณMaintenance is credited to one company (Zyte) plus outside contributors, but the README gives no numbers on review activity or how often releases ship.

Other web scraping options

Selenium โ€” browser automation that drives a real browser and runs JavaScript, useful when a target site won't return real content to a plain HTTP request. โ†—Puppeteer โ€” headless Chrome automation for teams already working in a Node.js stack rather than Python. โ†—A plain requests-based script โ€” enough for pulling a single page without adopting a framework, project structure, or the concept of a spider, at the cost of re-solving retries and parsing yourself every time.

Common questions about Scrapy

What Python versions does Scrapy support?

Scrapy requires Python 3.10 or newer, according to the version badge on its GitHub repository; it doesn't run on older Python releases.

Is Scrapy free to use?

Scrapy is free to use. It's released under the permissive BSD-3-Clause license, which places no cost or copyleft obligation on projects that depend on it.

Can Scrapy be used for commercial projects?

Scrapy's BSD-3-Clause license permits commercial use, including modifying and redistributing the code, without requiring you to open-source your own project.

Who maintains the Scrapy project?

Scrapy is maintained by Zyte, formerly known as Scrapinghub, together with a wider group of outside contributors credited on GitHub.

How do I install Scrapy?

Install Scrapy with `pip install scrapy` from PyPI; a conda-forge package is also available if you manage Python environments with conda.

The problem it solves

Scraping more than a handful of pages usually means writing the same boilerplate over and over: send a request, wait, parse the response, retry on failure, save the result somewhere useful. Scrapy exists to take that repeated work off your plate. The project describes itself as a framework for pulling structured data out of websites, not a single script you rewrite for every new source.

Best use cases

  • โ€ขBuilding a scraper you expect to maintain for months, not a script you'll throw away after one run, since the project's CI and coverage tooling exist to support ongoing changes.
  • โ€ขStandardizing how a team writes crawlers across multiple projects instead of every script reinventing request handling and retries from scratch.
  • โ€ขWorking inside a Python codebase already, since Scrapy is a Python-only framework requiring version 3.10 or newer.
  • โ€ขPulling structured data at a scale where hand-rolled scripts stop being maintainable, per the project's own framing as an extraction framework rather than a single-page parser.

Who should try it โ€” and who should skip

Try Scrapy if you're a Python developer building a scraper meant to stick around, and you'd rather adopt a maintained framework than assemble retries, parsing, and output handling yourself. Skip it if you need a browser that executes JavaScript to see a page's real content, since the README gives no indication of that capability, or if you just need one page's HTML and don't want to install a framework and read a second documentation site to get there.

Related repositories

Source & attribution

Facts and quotes sourced from the scrapy/scrapy GitHub repository and its README.

GitHub data ยท last synced Aug 14, 2026Reviewed by Henry
โ† Back to TopGit

Still deciding about scrapy?

One click hands the question to an AI along with this page โ€” see what it says about scrapy.

GitHub