我花了一年时间编写完整的 Scrapy 手册。原因如下。

发布: (2026年2月4日 GMT+8 00:30)
7 min read
原文: Dev.to

Source: Dev.to

Source:

前段时间,我在做一个数据项目

没什么疯狂的事。我只需要每天从几个电商网站抓取商品价格并把它们导入电子表格。听起来很简单,对吧?

错。

把第一个爬虫搭建起来花了我远超预期的时间。等我终于让它跑起来后,我立刻意识到这只是容易的那部分。要是需要抓取需要登录的网站,或者是全部通过 JavaScript 加载的页面,或者想把数据存入真正的数据库而不是 CSV 文件,我又一次陷入困惑。每遇到一个新挑战,就像是从头再来。

随着时间的推移,我把所有问题都解决了,但过程既慢又令人沮丧。大量时间被浪费在寻找本该容易找到的答案上。这正是我想要填补的空白。于是我坐下来,逐章写下我希望一开始就有人教我的所有内容。

什么是 Scrapy Handbook?

Scrapy Handbook 是一本免费、开源的 45 章节 指南,帮助你从对网页抓取一无所知,成长为能够自信构建并部署生产级爬虫的高手。它不是零散的技巧集合,而是一个结构化、端到端的学习旅程。

  • 我在 2025 年 2 月 开始撰写,花了大约一年时间才定稿。
  • 每一章都经历了多轮修订。
  • 代码示例经过了实际测试。
  • 解释被反复重写,直至不需要博士学位也能理解。

整个手册托管在 GitHub,完全免费阅读。

适合谁?

如果你曾经想过 “我想抓取一个网站,但根本不知道从哪儿开始”,这本手册就是为你准备的。

如果你已经掌握了基础,却在遇到复杂情况(JavaScript 网站、数据库、代理、部署)时卡住,这本手册同样适合你。

手册的写作方式让完全的初学者可以从第 1 章一路跟随,而内容的深度也足以让有经验的读者在后面的章节中获得价值。

手册包含哪些内容?

手册分为九个部分,每个部分都在前一个的基础上展开。以下是你将踏上的旅程。

部分重点
Part I网页抓取概述、环境搭建、首个 Scrapy 爬虫、CSS 选择器与 XPath。
Part II数据抽取、Scrapy Items 与 ItemLoaders、清洗、管道、导出。
Part III表单、登录页面、JavaScript 渲染站点、媒体下载、站点地图、错误处理、性能优化。
Part IV数据库:SQLite、PostgreSQL、SQLAlchemy ORM、MongoDB,以及它们在管道中的使用。
Part V扩展:使用 Scrapy‑Redis 实现分布式爬取、策略、成本分析、资源优化、伦理问题。
Part VI部署:VPS 搭建、生产环境加固、监控、日志、Cron 调度、实用技巧。
Part VII内部机制:爬虫中间件、下载器中间件、扩展、信号系统。
Part VIII专业方向:代理、IP 轮换、反爬技术、测试、异步编程、调试、性能分析、构建 API。
Part IX大局观:法律与伦理考量、网页抓取的未来、持续学习的路线图。

快速体验

想看看 Scrapy 实际运行的样子吗?只需几步即可开始:

pip install scrapy
scrapy startproject myproject
cd myproject
scrapy genspider example example.com
scrapy crawl example

就是这么简单——五条命令,你就拥有了一个运行中的爬虫。手册会从这个起点一路带你走向分布式、生产级的系统。

我想坦诚的一点

网页抓取是那种“会随时失效”的领域——不是因为你做错了什么,而是因为你抓取的网站会改变布局、更新代码,或在一夜之间加入新的防护措施。一个原本可用的选择器可能会突然失效……

Source:

如果今天能正常工作,明天可能就不行了。

我在手册的 README 中写下了这句话,我是认真的。如果你在手册里发现某些内容已经失效,请不要沮丧。这并不是失败,而是网页爬取的本质。它是一项需要时间来培养的技能,手册为你提供了应对的工具和思路。

如果你确实发现了过时的内容,欢迎在 GitHub 仓库中打开 issue。或者更好的是,自己修复后提交 pull request。我会优先审阅并合并贡献。

为什么选择开源?

我本可以把它做成付费课程,或者出版成亚马逊上的书。说实话,我曾经有过这样的想法。但每次回想起自己刚入门时的感受,我又决定坚持开源……

Scrapy 手册

我对缺乏一个统一、清晰的 Scrapy 学习资源感到沮丧。我不希望其他人也经历同样的困境。

所以它是免费的,放在 GitHub 上。任何人都可以阅读、贡献并受益。

接下来会怎样?

手册是一个活文档。我仍在不断添加内容,完善解释,并随着 Scrapy 以及爬虫生态的演进更新示例。如果你觉得有什么主题缺失,或某段解释可以更清晰,真诚期待你的反馈。

  • 阅读它: 从第一章开始。
  • 贡献: 在 GitHub 上打开 issue 或提交 pull request。
  • 反馈: 告诉我你的想法。

👉 The Scrapy Handbook on GitHub

祝爬取愉快! 🕷️

Back to Blog

相关文章

阅读更多 »