
Scrapy 是全球使用最广泛的开源数据提取框架,由 Zyte 维护并得到超过 500 名其他贡献者的支持。它设计精简、天然可扩展,深受专业人士信赖,被用于大规模提取公开网络数据。用户可以通过 uv add scrapy 快速添加 Scrapy 到项目中。
Scrapy 会生成一个完整的项目,而非一次性脚本,使爬虫、设置、数据项和管道在爬虫规模增长时保持有序。使用 scrapy startproject 初始化项目结构,scrapy crawl 运行爬虫。典型项目结构如下:
quotes/ # project root
├── scrapy.cfg # deploy configuration
└── quotes/ # the project's Python module
├── __init__.py
├── items.py # define the data you extract
├── middlewares.py
├── pipelines.py # clean, validate & store items
├── settings.py # project-wide configuration
└── spiders/ # your spiders live here
├── __init__.py
└── quotes.py # one spider per source
Scrapy 核心内置了所需的一切,其余功能可通过扩展获得:
选择器示例代码:
# CSS or XPath — your choice, even mixed
title = response.css("h1::text").get()
price = response.xpath("//p[@class='price_color']/text()").get()
# Get everything, with a sensible default
tags = response.css("div.tags a.tag::text").getall()
image = response.css("img::attr(src)").get(default="")
# Run regex straight off a selector
sku = response.css("p.sku::text").re_first(r"SKU:\s*(\w+)")
Scrapy 保持精简设计,社区和 Zyte 的扩展生态可在需要时添加浏览器渲染、监控、防封禁等功能:
Scrapy 提供由 Zyte 创建的 Agent Skills,可将一个 URL 转化为生产就绪的爬虫——支持从 Claude Code、GitHub Copilot 或任何 AI 代理中操作。
Scrapy 已持续开发超过 15 年,拥有定期发布版本的维护团队和 500+ 贡献者。近期版本如 v2.17.0(2026-07-07)支持 HTTP/2 和 SOCKS 代理及改进的 TLS 版本设置;v2.16.0(2026-05-19)提供官方 Python 3.14 支持;v2.15.0(2026-04-09)引入实验性无 reactor 模式和基于 httpx 的下载处理器。
Scrapy 适用于需要大规模、可靠、可扩展地提取公开网络数据的场景,包括:
众多开发者与企业(如 DataFlirt.com、Scrapoxy、Flipdish、Databoutique.com、Turbolab Technologies、Proxyway 等)已在生产环境中信任并使用 Scrapy。