第 2 章 · 引擎车间:网络爬虫核心技术 本章要回答的三个问题:一单抓取任务从进车间到出车间,在引擎内部经历了哪些工位?URL 队列怎么排班、页面怎么分拣、反爬怎么应对,才能既有效率又守纪律?面对满架子的爬虫工具,什么时候该选 Crawl4AI、什么时候不该? 为什么会有这一章 第一章的任务单定义了"要什么",这一章回答"怎么拿"。很多教程把爬虫技术讲成 API 词典——一个函数一个函数地过,读者记了一堆参数,遇到真实站点还是无从下手。问题出在缺少车间的视角:引擎是一台流水设备,HTTP 客户端、浏览器内核、解析器、调度器、去重器是它的工位,任务是流经这些工位的工件。理解了工件怎么流动,每个 API 的存在理由不言自明;不理解流动,参数背了也会用错场合。 动态渲染是这个时代绕不开的背景。
本章要回答的三个问题:一单抓取任务从进车间到出车间,在引擎内部经历了哪些工位?URL 队列怎么排班、页面怎么分拣、反爬怎么应对,才能既有效率又守纪律?面对满架子的爬虫工具,什么时候该选 Crawl4AI、什么时候不该?
第一章的任务单定义了"要什么",这一章回答"怎么拿"。很多教程把爬虫技术讲成 API 词典——一个函数一个函数地过,读者记了一堆参数,遇到真实站点还是无从下手。问题出在缺少车间的视角:引擎是一台流水设备,HTTP 客户端、浏览器内核、解析器、调度器、去重器是它的工位,任务是流经这些工位的工件。理解了工件怎么流动,每个 API 的存在理由不言自明;不理解流动,参数背了也会用错场合。
动态渲染是这个时代绕不开的背景。目标站点的数据藏在浏览器执行脚本之后的 DOM 里,纯 HTTP 方案拿回的是空壳,于是浏览器内核从可选项变成了基础设施。Crawl4AI 的设计直接站在这个前提上:默认驱动真实浏览器,把渲染、等待、滚动这些脏活封装进配置。本章要做的,是把这些配置背后的工位逻辑讲透,让调参变成有依据的决策。
引擎车间的五个工位缺一个,流水线就在那里漏料——本章按工位顺序逐节展开。
对照三个问题,本章的交付是三份能力。第一,全流程能力:从安装初始化到 arun 与 arun_many 的并发调用,能独立完成一次带渲染等待的单站采集,并在日志里定位卡在哪个工位。第二,调度与分拣能力:能按任务单选择广度或深度策略、设置优先级与频控、用声明式 schema 抽出字段级干净数据。第三,对抗与选型的判断力:能识别四类常见反爬手段并给出得体应对;能对照 Scrapy、Playwright 裸用、商业采集服务,说清 Crawl4AI 的适用边界与不适用场景。
| 节号 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 2.1 任务的完整旅程 | 工位怎么串成流水线 | 五工位视角与首次 arun 实操 |
| 2.2 排班的艺术 | 队列策略与频控怎么设 | 策略对比表与深度爬取配置 |
| 2.3 分拣台 | 字段怎么干净地抽出来 | 声明式 schema 与净化输出 |
| 2.4 对抗演练 | 反爬怎么识别与应对 | 手段信号表与得体应对组合 |
| 2.5 装备库 | 工具怎么选 | 四方案对比与决策树 |
车间产出的是"原始但干净"的数据流。第 3 章接收它,进质检流水线:需求如何反推字段、数据源怎么评审、清洗去重怎么落地、仓储怎么组织、标注增强怎么增值。如果你是从第 4 章跳回来的读者,2.2 与 2.3 两节是你最该补的工位。