第6章 · 回程与远行:管道、分布式与部署 本章要回答的三个问题:解析回调 yield 出的 Item,在变成数据库里的一行之前经历了什么?单机爬虫怎么长成多机协同,又怎么把它部署成无人值守的定时任务?框架之外还有哪些轮子与约定,让成熟工程少走弯路? 为什么会有这一章 旅程的最后一程,往往被初学者当作"存储问题"草草带过——抓下来存进去不就完了?实际恰恰相反:回程决定数据质量,远行决定工程生命。Item 从回调里出来时是"原始货物":字段缺失、格式混乱、重复掺杂。管道层是唯一一个能对全部数据统一施策的位置,清洗、校验、去重、落库都在这里分层完成——这是第 2 章埋下的伏笔(Item 是契约),本章兑现。 远行部分回答"工程怎么活下去":单机跑一次与持续跑半年是两种工程。断点续抓(3.
本章要回答的三个问题:解析回调 yield 出的 Item,在变成数据库里的一行之前经历了什么?单机爬虫怎么长成多机协同,又怎么把它部署成无人值守的定时任务?框架之外还有哪些轮子与约定,让成熟工程少走弯路?
旅程的最后一程,往往被初学者当作"存储问题"草草带过——抓下来存进去不就完了?实际恰恰相反:回程决定数据质量,远行决定工程生命。Item 从回调里出来时是"原始货物":字段缺失、格式混乱、重复掺杂。管道层是唯一一个能对全部数据统一施策的位置,清洗、校验、去重、落库都在这里分层完成——这是第 2 章埋下的伏笔(Item 是契约),本章兑现。
远行部分回答"工程怎么活下去":单机跑一次与持续跑半年是两种工程。断点续抓(3.1 节的磁盘队列)、分布式去重(外部指纹库)、定时调度、运行监控,每一样都在把"能跑的脚本"变成"可靠的系统"。本章的部署节给出从零到定时任务的最短路径;分布式节讲清什么时候才真的需要多机——很多所谓的规模问题,其实是单机参数没调好。
生态一节收拢框架周边:扩展机制、常用中间件与插件、与其他组件的集成方式,以及一张"遇事先找轮子"的地图。这让你在标准能力之外知道去哪找增量,也为继续深入指了方向。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 6.1 管道分层 | 回程货怎么洗 | 分层管道模式与顺序设计 |
| 6.2 持久化 | 洗完存哪去 | 三类存储的落地与选型 |
| 6.3 分布式 | 何时多机、怎么协同 | 最小分布式架构 |
| 6.4 部署 | 怎么无人值守 | 定时任务与监控基线 |
| 6.5 生态与最佳实践 | 轮子在哪、惯例是什么 | 扩展机制与避坑清单 |
前三节沿回程主线递进,后两节是"从工程到系统"的收束。若时间紧张,6.1 与 6.4 是必须精读的两节——数据质量与可持续运行是交付的底线。
本章是全册终点,也是真实工程起点。读完回望第 1 章那张双程全景图:从 Spider 车间出发的车票,此刻已经能多机并发、定时往返、入库留痕。若要继续深挖,三条路——异步引擎原理、大规模调度平台、站点对抗进阶——线索都散落在各章的延伸提示里。