scrapy is a free, open source data extraction & web scraping project written in Python and released under BSD-3-Clause. It has 64,388 GitHub stars, 11,962 forks and 394 open issues, and was last pushed 8 hours ago. On this registry it ranks #3 of 45 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 28 stars over the last 3 tracked days.

What is scrapy?

What it is

Scrapy is a web scraping framework written in Python, distributed under the BSD-3-Clause license, and described in its own README as a tool to extract structured data from websites. It is cross-platform and requires Python 3.10 or newer. The project is maintained by Zyte, formerly known as Scrapinghub, together with a broader group of contributors, and it lives in the Python ecosystem as an installable library rather than a hosted service. Its repository is roughly seventeen years old, which places it among the longer-running projects in the web scraping space.

The concrete problem it solves is the gap between a one-off script that fetches a page and a repeatable system that pulls structured data out of many pages. Developers who need to crawl sites and turn the results into structured records would otherwise assemble their own fetching, parsing, and scheduling code. Scrapy packages that work as a framework, so the crawling and scraping logic is written against an existing structure instead of being rebuilt for each project. The topic list on the repository — crawler, crawling, framework, scraping, web-scraping, web-scraping-python — reflects that framing directly.

Key capabilities

  • Crawls websites and extracts structured data from the pages it retrieves, as stated in the project README.
  • Ships as a framework, so scraping projects are built on top of it rather than written from scratch.
  • Runs cross-platform, without a platform-specific dependency noted in the README.
  • Requires Python 3.10 or newer, and supports the Python versions listed on its PyPI badge.
  • Publishes releases to PyPI, where the current version is tracked by the project's version badge.
  • Publishes a conda-forge build, tracked by a separate conda version badge.
  • Maintains test and coverage badges, indicating continuous integration and coverage reporting on the master branch.

Who uses it and how

  • Python developers who need to extract structured data from websites and want a framework rather than a bespoke script.
  • Teams running crawls across platforms, since the README states the project is cross-platform.
  • Projects on Python 3.10 or newer, which is the minimum the README specifies.
  • Users installing from PyPI with pip, or from conda-forge where a package is published.
  • Contributors, including participants in Hacktoberfest, which appears in the repository topic list.

Getting started

Install with pip install scrapy, or use the conda-forge package. The README then points to the documentation at docs.scrapy.org for

project readme (upstream, from github) — read inline

|logo|

.. |logo| image:: https://raw.githubusercontent.com/scrapy/scrapy/master/docs/_static/logo.svg :target: https://scrapy.org :alt: Scrapy :width: 480px

|version| |python_version| |tests| |coverage| |conda| |deepwiki|

.. |version| image:: https://img.shields.io/pypi/v/Scrapy.svg :target: https://pypi.org/pypi/Scrapy :alt: PyPI Version

.. |python_version| image:: https://img.shields.io/pypi/pyversions/Scrapy.svg :target: https://pypi.org/pypi/Scrapy :alt: Supported Python Versions

.. |tests| image:: https://img.shields.io/github/check-runs/scrapy/scrapy/master?label=tests :target: https://github.com/scrapy/scrapy/actions?query=branch%3Amaster :alt: Tests

.. |coverage| image:: https://img.shields.io/codecov/c/github/scrapy/scrapy/master.svg :target: https://codecov.io/github/scrapy/scrapy?branch=master :alt: Coverage report

.. |conda| image:: https://anaconda.org/conda-forge/scrapy/badges/version.svg :target: https://anaconda.org/conda-forge/scrapy :alt: Conda Version

.. |deepwiki| image:: https://deepwiki.com/badge.svg :target: https://deepwiki.com/scrapy/scrapy :alt: Ask DeepWiki

Scrapy_ is a web scraping framework to extract structured data from websites. It is cross-platform, and requires Python 3.10+. It is maintained by Zyte_ (formerly Scrapinghub) and many other contributors_.

.. _many other contributors: https://github.com/scrapy/scrapy/graphs/contributors .. _Scrapy: https://scrapy.org/ .. _Zyte: https://www.zyte.com/

Install with:

.. code:: bash

pip install scrapy

And follow the documentation_ to learn how to use it.

.. _documentation: https://docs.scrapy.org/en/latest/

If you wish to contribute, see Contributing_.

.. _Contributing: https://docs.scrapy.org/en/master/contributing.html

Frequently asked questions

Is scrapy free to use?

scrapy is open source under the BSD-3-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does scrapy do?

Scrapy, a fast high-level web crawling & scraping framework for Python.

What is scrapy written in?

scrapy is primarily written in Python. Its source is publicly available at https://github.com/scrapy/scrapy, and it has 64,388 GitHub stars.