Skip to content

OPEN SOURCE · Python · BSD-3-Clause · Image

Scrapy

Scrapy

Industrial-grade Python crawler framework, large-scale structured scraping

50,000BSD-3-ClauseJul 9, 2026Python

Where it fits in the workflow

Scrapy is the most widely adopted industrial-grade crawler framework in the Python ecosystem. First committed in 2012, licensed under the permissive BSD-3-Clause, and written primarily in Python. It provides a complete Spider / Item / Pipeline / Middleware / Downloader architecture, suited for large-scale structured scraping and data processing pipelines. Widely used in data engineering, machine learning, and AI training data preparation.

Core capabilities center on an extensible, async scraping framework. Spider layer: users subclass scrapy.Spider and define scraping logic via start_requests + parse callbacks; prebuilt base classes include SitemapSpider, CrawlSpider, XMLFeedSpider; Selector API (CSS / XPath) integrates efficiently with lxml. Pipeline layer: Item Pipeline is a post-processing hook chain that can chain dedup, cleansing, validation, database writes, ML scoring, and other steps; mature unit testing + debugging. Concurrency model: based on Twisted async I/O + queue, a single machine can handle thousands of concurrent requests; AutoThrottle auto-tunes rate and concurrency. Middleware layer: customizable downloader middleware (proxy, UA, cookie, retry), spider middleware (request filtering, URL normalization); a mature extension ecosystem including fake-useragent, scrapy-rotating-proxies, scrapy-splash (JS rendering). Deployment and monitoring: Scrapyd (scrapy/scrapyd) is the official daemon with HTTP API for spider submission; commercial Scrapy Cloud (scrapinghub) offers cloud orchestration; open-source alternatives include SpiderKeeper / Gerapy. Ecosystem: scrapy-redis (distributed), scrapy-playwright (JS rendering), scrapy-impersonate (browser fingerprint spoofing) cover various edge cases.

Use cases include: large-scale data acquisition (price comparison, news aggregation), AI training dataset preparation (combined with gallery-dl / yt-dlp for media scraping), SEO and brand monitoring, researcher dataset prep, and enterprise ETL pipeline front-ends. Hardware floor: a Python async framework; single-core CPU handles 100+ concurrent requests, 8GB RAM can process hundreds of thousands of URLs per hour; high-concurrency scenarios scale horizontally with workers. Onboarding: pip install scrapy → scrapy startproject myspider → define Item / Spider / Pipeline → scrapy crawl myspider. Documentation is at docs.scrapy.org; community resources are rich.

Licensed under BSD-3-Clause (permissive), allows commercial closed-source use, modification, and redistribution; only requires preserving the copyright notice; no requirement to release derivative source — this is the license-friendliness delta versus gallery-dl (GPL-2.0) and yt-dlp (Unlicense). Scrapy, yt-dlp, and gallery-dl have complementary positions: Scrapy is for the "custom scraping logic + structured data post-processing" engineer scenario; yt-dlp / gallery-dl are for "per-site preset extractors + media archiving" user scenarios. For hybrid needs (some sites have existing extractors, others need custom crawlers), you can call yt_dlp / gallery_dl Python APIs inside a Scrapy project and inject them as Downloader Middleware. Note: Scrapy doesn't store scraped content or proxy copyright judgment; users must comply with target platform ToS, robots.txt, and applicable copyright law.

Workflow stage

Quick Start

Deployment guides and docs are linked externally to stay up to date.

Related projects

Privacy preferences

We use localStorage to record visit statistics and improve content quality. Learn more