Skip to content

Python 高级爬虫实战 - 知识结构目录

课程概览

课程定位

针对有 Python 基础的开发工程师,系统掌握 Web 反爬破解技术,挑战高级爬虫工程师高薪岗位

核心特色

  • 反爬全面覆盖:加密登录破解、逆向重构、Cookie 池管理、浏览器调度、字体加密破解
  • 实战驱动:每个章节配套真实网站实战练习,直接对标生产环境
  • 架构进阶:从单机爬虫到分布式爬虫架构,掌握海量数据抓取方案
  • 工程化思维:代理池搭建、Cookie 池管理、分布式部署、海量存储一体化方案

课程结构

维度内容
章节11章
时长22小时30分钟
难度高级
讲师小布老师(全栈 Python 工程师,中国人民银行金融数据中心爬虫技术专家)
适用有 Python 基础,想进阶高级爬虫工程师

第一章:爬虫进阶 - 突破 Web 反爬(课程导学)

教学目标

  1. 了解课程整体脉络与学习路线
  2. 搭建开发环境
  3. 明确爬虫工程师的学习方向与重点

学习痛点

  • 不知道爬虫进阶该学什么,学习路线不清晰
  • 环境搭建不完整,后续学习频频卡壳
  • 对爬虫工程师的职业发展方向模糊

章节内容

1.1 课程导学

  • 爬虫进阶之破解 Web 端反爬技术 - 课程导学(07:00)
  • 课程整体架构与学习路径图

1.2 爬虫工程师学习建议

  • 给所有爬虫工程师的学习建议(19:37)
  • 爬虫重点学习方向梳理
  • 爬虫工程师该何去何从?(讨论题)

1.3 开发环境搭建

  • 课程开发环境搭建文档
  • Python 环境、IDE 配置、抓包工具安装

本章知识点

  • 爬虫工程师能力模型与成长路径
  • 反爬技术全景图
  • 学习环境准备清单

第二章:必须掌握的 HTTP 网络基础知识

教学目标

  1. 深入理解 HTTPS 的安全机制与加密原理
  2. 掌握 HTTP 状态码在爬虫调试中的应用
  3. 识别 HTTP 请求头中暴露爬虫身份的信息
  4. 掌握 HTTP 协议版本演进与爬虫适配
  5. 解决 HTTPS 证书认证问题

学习痛点

  • 不理解 HTTPS 加密原理,遇到 SSL 错误不知道怎么处理
  • 请求头配置不当,被网站轻易识别为爬虫
  • 不清楚 HTTP/1.1 vs HTTP/2 的差异,无法适配目标网站
  • 证书认证失败时不知道如何绕过

章节内容

2.1 HTTPS 安全机制

  • 为什么 HTTPS 是安全的?(上)(10:50)
  • 为什么 HTTPS 是安全的?(下)(11:27)
  • 对称加密 vs 非对称加密 vs 混合加密
  • TLS/SSL 握手过程详解
  • 证书链验证机制

2.2 HTTP 状态码

  • HTTP 状态码告诉我们哪个环节出了问题?
  • 2xx / 3xx / 4xx / 5xx 在爬虫中的含义
  • 301/302 重定向处理
  • 403 Forbidden / 429 Too Many Requests 的反爬含义

2.3 HTTP 请求头与反爬

  • 这些 HTTP 请求头信息出卖了爬虫?(上)(13:00)
  • 这些 HTTP 请求头信息出卖了爬虫?(下)(11:50)
  • User-Agent 指纹识别与伪装
  • Referer 来源验证
  • Accept-Language / Accept-Encoding 特征分析
  • X-Requested-With 与 AJAX 请求识别

2.4 HTTP 协议演进

  • 每次 HTTP 协议升级分别解决什么问题?
  • HTTP/1.0 → HTTP/1.1 → HTTP/2 → HTTP/3 演进
  • HTTP/2 多路复用对爬虫的影响

2.5 HTTPS 证书认证

  • 爬虫如何解决 HTTPS 证书认证?(13:16)
  • 证书信息的补充(03:29)
  • verify=False 的风险与替代方案
  • 自签名证书处理

本章知识点

  • HTTPS 加密原理(TLS 握手、证书链)
  • HTTP 状态码体系与爬虫调试
  • 请求头反爬识别与伪装
  • HTTP 协议版本差异
  • SSL 证书处理方案

第三章:手把手教你搭建代理服务

教学目标

  1. 了解主流代理 IP 服务商的优劣与选型
  2. 掌握 Squid 自建代理服务的完整流程
  3. 实现代理服务的加密认证
  4. 构建可维护的代理池技术方案

学习痛点

  • 代理 IP 服务商太多,不知道怎么选
  • 只会用第三方代理 API,不会自建代理服务
  • 代理服务没有加密,容易被探测和封禁
  • 代理池管理混乱,不知道怎么系统化搭建

章节内容

3.1 代理 IP 服务商对比

  • 纵向对比各大代理 IP 服务商的优劣(1)(08:54)
  • 纵向对比各大代理 IP 服务商的优劣(2)(14:49)
  • 纵向对比各大代理 IP 服务商的优劣(3)(10:44)
  • 短效代理 vs 长效代理的适用场景
  • 代理 IP 类型:透明代理 / 匿名代理 / 高匿代理

3.2 Squid 自建代理服务

  • 用 Squid 自建代理服务(1)(12:56)
  • 用 Squid 自建代理服务(2)(13:58)
  • 创建加密的 Squid 代理服务(3)(22:19)
  • Squid 配置文件详解
  • 认证方案:basic_auth / digest_auth

3.3 代理池技术方案

  • Squid + VPS 搭建代理池的技术方案
  • 代理池架构设计:获取 → 验证 → 存储 → 调度
  • 代理可用性检测与自动剔除
  • 代理轮换策略

3.4 第三方代理产品应用

  • 一起分析第三方代理产品的应用场景(17:07)
  • 第三方代理 API 的接入与封装
  • 自建代理 vs 第三方代理的成本分析

本章实战项目

项目名称:Squid + VPS 搭建加密代理池

项目内容

  1. 在 VPS 上部署 Squid 代理服务
  2. 配置代理认证(用户名/密码)
  3. 搭建多节点代理池
  4. 实现代理可用性检测与自动轮换
  5. 封装 Python 代理调用接口

本章知识点

  • 主流代理 IP 服务商对比与选型
  • Squid 代理服务搭建与加密认证
  • 代理池架构设计与管理
  • 代理轮换策略与可用性检测

第四章:破解加密登录的过程

教学目标

  1. 理解明文传输与密文传输的区别
  2. 掌握账号信息加密的通用算法
  3. 掌握通过抓包逆向分析 JS 代码的完整流程
  4. 突破无限 Debugger 反调试机制
  5. 使用 BreakPoint 调试 JS 堆栈
  6. 掌握 JS 篡改与伪装技术(ReRes)
  7. 用 Python 逆向重构加密函数
  8. 用 Python 调度 JS 文件实现密码加密

学习痛点

  • 遇到加密登录直接放弃,不知道怎么逆向
  • 无限 Debugger 卡死浏览器,无法调试
  • JS 逆向分析毫无头绪,不知道从哪里入手
  • 逆向出来了但不会用 Python 重构加密逻辑

章节内容

4.1 加密基础

  • 明文传输和密文传输
  • 了解账号信息加密的通用算法
  • 常见加密算法:MD5 / SHA / AES / DES / RSA
  • Base64 编码 vs 加密

4.2 抓包逆向分析 JS 代码

  • 通过抓包逆向分析 JS 代码(1)(11:26)
  • 通过抓包逆向分析 JS 代码(2)(12:47)
  • 通过抓包逆向分析 JS 代码(3)(20:35)
  • Chrome 开发者工具一览
  • 开发者工具栏的网络栏使用说明(01:33)
  • 抓包工具对比:Chrome DevTools vs Fiddler vs Charles vs mitmproxy

4.3 突破无限 Debugger

  • 无限 Debugger 产生的原因和突破方法(23:16)
  • debugger 语句的反调试原理
  • 条件断点禁用 Debugger
  • 函数重写覆盖 Debugger
  • 远程加载 JS 文件的篡改

4.4 JS 断点调试与堆栈分析

  • 添加 BreakPoint 调试 JS 堆栈内容(上)(20:22)
  • 添加 BreakPoint 调试 JS 堆栈内容(下)(22:38)
  • 断点类型:行断点 / 条件断点 / DOM 断点 / XHR 断点
  • Call Stack 调用栈分析
  • Scope 作用域与变量查看
  • Watch 表达式与逐步执行

4.5 JS 篡改与伪装

  • 适用 ReRes 篡改和伪装 JS 内容(30:30)
  • ReRes 插件工作原理:URL 重定向到本地文件
  • 本地 JS 修改后替换线上 JS
  • Tampermonkey 油猴脚本替代方案
  • Charles / Fiddler Map Local 方案

4.6 Python 逆向重构加密函数

  • Python 逆向重构加密函数(上)(19:43)
  • Python 逆向重构加密函数(下)(23:15)
  • JS → Python 代码翻译技巧
  • 常见 JS 加密库的 Python 对应实现
  • 边界 case 处理与结果验证

4.7 Python 调度 JS 文件

  • Python 调度 JS 文件实现密码加密(上)(12:07)
  • Python 调度 JS 文件实现密码加密(下)(15:48)
  • execjs 库:直接执行 JS 代码
  • PyExecJS vs execjs vs Node.js subprocess 对比
  • JS 环境补全:window / document / navigator 对象模拟
  • 性能与稳定性优化

本章实战项目

项目名称:逆向破解真实网站加密登录

项目内容

  1. 抓包分析目标网站登录请求
  2. 定位 JS 加密函数
  3. 突破无限 Debugger 反调试
  4. 断点调试分析加密逻辑
  5. 用 ReRes 篡改 JS 验证分析结果
  6. Python 逆向重构加密函数
  7. Python 调度 JS 文件实现加密登录
  8. 两种方案对比与选型

本章知识点

  • 加密算法基础(MD5/SHA/AES/DES/RSA)
  • Chrome DevTools 逆向分析
  • 无限 Debugger 反调试突破
  • JS 断点调试与堆栈分析
  • ReRes / Tampermonkey JS 篡改
  • Python 逆向重构加密逻辑
  • execjs / PyExecJS 调度 JS 执行

教学目标

  1. 理解 Cookie 的来源、重要性与使用场景
  2. 掌握 Cookie 的属性与时效管理
  3. 区分 Session 与 Cookie 的关系
  4. 用 Python 实现 Cookie 持久化与复用
  5. 实现 Cookie 的协助式提取
  6. 搭建 Cookie 池管理系统
  7. 高并发维护上万 Cookie 的有效性

学习痛点

  • 单账号抓取数据量太少,多账号管理混乱
  • Cookie 过期后不知道怎么自动刷新
  • 上万 Cookie 的有效性维护没有头绪
  • Cookie 调试环境搭建耗时,每次都要手动操作

章节内容

  • Cookie 的来源和重要性
  • Cookie 池的使用场景(14:02)
  • Cookie 的属性和时效说明(20:02)
    • Name / Value / Domain / Path / Expires / Max-Age
    • Secure / HttpOnly / SameSite
  • Session 和 Cookie 的共同点和区别(16:36)
  • 用 Python 对 Cookie 进行持久化和装载复用(1)(21:04)
  • 用 Python 对 Cookie 进行持久化和装载复用(2)(14:57)
  • http.cookiejar 标准库
  • requests.Session 的 Cookie 管理
  • Cookie 序列化存储:JSON / Pickle / SQLite
  • 用 Python 实现 Cookie 的协助式提取和复用(1)(16:49)
  • 用 Python 实现 Cookie 的协助式提取和复用(2)(16:35)
  • 用 Python 实现 Cookie 的协助式提取和复用(3)(22:33)
  • Selenium / Playwright 提取 Cookie
  • 浏览器 Cookie 导出插件
  • 协助式提取:半自动 + 全自动方案
  • Cookie 的维护方案和管理系统
  • Cookie 池架构设计:
    • 存储层:Redis / MySQL
    • 管理层:增删改查 / 分组 / 优先级
    • 调度层:轮询 / 随机 / 加权
    • 验证层:有效性检测 / 自动剔除 / 自动补充
  • 一键部署大批量的 Cookie 调试环境(上)(20:25)
  • 一键部署大批量的 Cookie 调试环境(下)(26:54)
  • 复杂登录过程的 Cookie 调试环境 - 上(25:00)
  • 复杂登录过程的 Cookie 调试环境 - 下(09:50)
  • Chrome 多 Profile 隔离登录
  • Cookie 批量导入导出工具
  • 【社交平台实战】提取 Cookie 保存到 Cookie 池中(16:37)
  • 【Cookie 实战】高并发维护上万 Cookie 的有效性(上)(14:48)
  • 【Cookie 实战】高并发维护上万 Cookie 的有效性(下)(29:59)
  • 高并发验证方案:asyncio + aiohttp 批量检测
  • 失效 Cookie 自动标记与替换
  • Cookie 生命周期管理:创建 → 使用 → 验证 → 失效 → 替换

本章实战项目

项目名称:高并发 Cookie 池管理系统

项目内容

  1. 设计 Cookie 池存储架构(Redis)
  2. 实现 Cookie 持久化与自动装载
  3. 实现 Cookie 协助式提取工具
  4. 搭建 Cookie 调试环境(多 Chrome Profile)
  5. 实现高并发 Cookie 有效性检测(asyncio + aiohttp
  6. 实现 Cookie 自动补充与淘汰机制
  7. 支持社交平台 Cookie 批量提取入池
  8. 管理 10000+ Cookie 的并发调度

本章知识点

  • Cookie 属性与时效管理
  • Session vs Cookie
  • Cookie 持久化方案(cookiejar / requests.Session
  • Cookie 协助式提取(Selenium / 浏览器插件)
  • Cookie 池架构设计(存储 / 管理 / 调度 / 验证)
  • 高并发 Cookie 有效性维护
  • Chrome 多 Profile 隔离

第六章:调度浏览器降低分析难度

教学目标

  1. 对比 Selenium / PhantomJS / Puppeteer 的优劣与选型
  2. 掌握 Selenium 的核心操作与 Chrome 远程调试
  3. 掌握 Puppeteer 的工作原理与应用场景
  4. 实现浏览器登录官网自动化
  5. 实现滑动验证码全自动识别
  6. 掌握图像对比算法(RGB / Rembrandt / SSIM)
  7. 用贝塞尔曲线模拟真人滑动行为

学习痛点

  • 纯请求方式被反爬封死,不知道怎么用浏览器降维打击
  • Selenium 速度慢、容易被检测,不知道怎么优化
  • 滑动验证码过不去,不知道怎么识别和模拟
  • 滑动轨迹太机械,被识别为机器人

章节内容

6.1 浏览器自动化工具对比

  • 对比 Selenium / PhantomJS / Puppeteer
  • 各工具优劣势:
    • Selenium:生态成熟、多语言支持、速度慢
    • PhantomJS:已废弃、不推荐
    • Puppeteer:Node.js 生态、API 现代、性能好
    • Playwright:新一代标准(补充)
  • 选型建议与适用场景

6.2 Selenium 实战

  • Selenium 的优势和点击操作(上)(13:28)
  • Selenium 的优势和点击操作(下)(17:09)
  • 元素定位策略:ID / Class / XPath / CSS Selector
  • 显式等待 vs 隐式等待
  • WebDriverWait + expected_conditions
  • Selenium 反检测:undetected-chromedriver

6.3 Chrome 远程调试

  • Chrome 的远程调试能力(18:09)
  • Chrome 开启远程调试端口
  • --remote-debugging-port 参数配置
  • 远程调试协议(CDP)基础
  • 通过 Chrome 隔离实现一台电脑登录多个账号(上)(13:08)
  • 通过 Chrome 隔离实现一台电脑登录多个账号(下)(23:14)
  • Chrome --user-data-dir 多实例隔离

6.4 Puppeteer 实战

  • Puppeteer 的工作原理及应用场景
  • Node.js + Puppeteer 实现登录官网(上)(14:50)
  • Node.js + Puppeteer 实现登录官网(下)(21:51)
  • Puppeteer API 核心:page.goto() / page.click() / page.evaluate()
  • puppeteer.connect() 连接已有 Chrome 实例
  • Headless vs Headful 模式

6.5 滑动验证码识别

  • Node.js + Puppeteer 实现滑动验证码全自动识别(上)(20:19)
  • Node.js + Puppeteer 实现滑动验证码全自动识别(下)(25:10)
  • 滑动验证码原理:缺口位置识别 + 轨迹模拟
  • 截图与图像处理:获取验证码图片
  • 缺口位置定位算法

6.6 图像对比算法

  • 网站登录项目架构说明(上)(16:34)
  • 网站登录项目架构说明(中)(17:08)
  • 网站登录项目架构说明(下)(15:20)
  • 像素 RGB 对比算法(上)(15:52)
  • 像素 RGB 对比算法(下)(18:44)
    • 逐像素比对、差异阈值、二值化
  • Rembrandt 算法(18:48)
    • 图像相似度比较库
  • SSIM 结构相似性算法(14:55)
    • 结构相似性指数原理
    • 亮度 / 对比度 / 结构三维度比较
  • 三种算法对比与适用场景

6.7 真人滑动模拟

  • 利用贝塞尔曲线模拟真人滑动鼠标(27:17)
  • 贝塞尔曲线(Bézier Curve)数学原理
  • 轨迹生成:起点 → 控制点 → 终点
  • 速度曲线:先快后慢 / 先慢后快 / 匀速 + 随机抖动
  • 鼠标事件序列:mousedown → mousemove × N → mouseup
  • 反检测:人类行为特征模拟

本章实战项目

项目名称:Puppeteer 自动登录 + 滑动验证码识别系统

项目内容

  1. 搭建 Node.js + Puppeteer 项目架构
  2. 实现网站自动登录流程
  3. 实现滑动验证码截图与缺口定位
  4. 实现三种图像对比算法(RGB / Rembrandt / SSIM)
  5. 用贝塞尔曲线生成真人滑动轨迹
  6. 验证码通过率测试与优化
  7. 支持多网站适配

本章知识点

  • 浏览器自动化工具选型(Selenium / Puppeteer / Playwright)
  • Selenium 核心操作与反检测
  • Chrome 远程调试(CDP 协议)
  • Chrome 多实例隔离
  • Puppeteer API 与项目架构
  • 滑动验证码识别全流程
  • 图像对比算法(RGB / Rembrandt / SSIM)
  • 贝塞尔曲线轨迹模拟与真人行为仿真

第七章:逆向破解被加密的数据

教学目标

  1. 理解字体渲染的完整流程
  2. 掌握字体文件检查与数据查看方法
  3. 实现字体文件转换与网页内容还原
  4. 掌握 Base64 编码在网页中的应用与解码
  5. 实现上百页加密数据的完美还原

学习痛点

  • 网页上的数据看起来正常但复制出来是乱码
  • 不理解字体加密原理,遇到就绕道
  • Base64 编码的数据不知道怎么识别和解码
  • 数据加密贯穿上百页,不知道怎么批量还原

章节内容

7.1 字体渲染原理

  • 字体渲染的顺序和原理
  • 全方位了解字体渲染的全过程(13:11)
  • 浏览器渲染流水线:HTML → DOM → CSSOM → Render Tree → Layout → Paint
  • @font-face 自定义字体加载
  • 字符编码 → 字形(Glyph)映射机制
  • 字体加密反爬原理:自定义字形替换 Unicode 映射

7.2 字体文件检查与查看

  • 字体文件的检查和数据查看(19:06)
  • 字体文件格式:WOFF / WOFF2 / TTF / OTF
  • 字体编辑工具:FontForge / FontCreator
  • XML 格式查看字体内部映射关系
  • cmap 表分析:Unicode → Glyph ID 映射
  • 在线字体查看工具

7.3 字体文件转换与内容还原

  • 字体文件转换并实现网页内容还原(24:50)
  • 字体文件格式转换(WOFF → TTF)
  • 解析字体 cmap 表获取真实映射关系
  • 构建映射字典:加密字符 → 真实字符
  • 批量替换网页中的加密字符
  • 处理动态字体文件(每次请求字体映射不同)

7.4 Base64 数据解码

  • 解析出给出 Base64 字符串的原数据(作业题)
  • Base64 在网页中的常见应用场景(讨论题)
  • Base64 编码原理:3 字节 → 4 字符
  • 图片 Base64 内联(data URI scheme)
  • API 响应中 Base64 编码的 JSON 数据
  • Python base64 标准库使用

7.5 批量数据还原实战

  • 完美还原上百页的数据内容(上)(12:33)
  • 完美还原上百页的数据内容(下)(17:58)
  • 分页抓取 + 字体解密流水线
  • 动态字体映射的自动化处理
  • 数据完整性验证

本章实战项目

项目名称:字体加密破解与批量数据还原

项目内容

  1. 分析目标网站字体加密机制
  2. 下载并解析字体文件(WOFF/TTF)
  3. 构建字符映射字典
  4. 处理动态字体文件(每次请求映射不同)
  5. 实现批量分页抓取 + 实时解密
  6. 上百页数据完美还原
  7. 数据完整性校验

本章知识点

  • 浏览器字体渲染全流程
  • @font-face 与字体加密反爬原理
  • 字体文件格式(WOFF/WOFF2/TTF)
  • 字体 cmap 表解析与映射关系构建
  • 动态字体文件处理
  • Base64 编码原理与解码
  • 批量数据解密流水线设计

第八章:反爬的实战练习

教学目标

  1. 综合运用前述章节知识进行反爬实战
  2. 掌握爬虫文件的解析与数据抓取
  3. 分析并突破网站反爬措施
  4. Scrapy 框架接入 Cookie 池管理系统
  5. 掌握分布式爬虫的架设

学习痛点

  • 学了很多零散知识,但缺乏综合实战经验
  • Scrapy 框架接入 Cookie 池不知道怎么整合
  • 分布式爬虫只在概念层面,没有实际搭建过

章节内容

8.1 实战目标说明

  • 目标网站和数据抓取要求说明
  • 爬虫文件的解析和数据的抓取(上)(17:36)
  • 爬虫文件的解析和数据的抓取(下)(15:59)
  • 目标网站结构分析
  • 数据字段定义与抓取策略

8.2 反爬分析与突破

  • 反爬措施的分析和突破(18:08)
  • 综合反爬手段识别:请求头检测 / IP 限制 / 登录态验证 / 数据加密
  • 针对性突破方案设计
  • 突破效果验证
  • Scrapy 接入 Cookie 池管理系统(上)(18:34)
  • Scrapy 接入 Cookie 池管理系统(中)(18:56)
  • Scrapy 接入 Cookie 池管理系统(下)(17:21)
  • Scrapy 架构回顾:Engine / Spider / Downloader / Pipeline
  • Downloader Middleware 中间件接入 Cookie 池
  • Cookie 轮换策略:每个请求分配不同 Cookie
  • Cookie 失效自动标记与替换
  • 集成代理池 + Cookie 池双重反反爬

8.4 分布式爬虫架设

  • 分布式爬虫的架设(上)(15:26)
  • 分布式爬虫的架设(中)(16:34)
  • 分布式爬虫的架设(下)(15:10)
  • Scrapy-Redis 分布式方案
    • Redis 作为请求队列与去重集合
    • 分布式 Spider 调度
    • 多节点 Worker 部署
  • Scrapyd 部署与管理
    • Scrapyd 服务部署
    • scrapyd-client 打包上传
    • Scrapyd API 远程管理
  • 分布式爬虫管理系统:Gerapy / Crawlab

本章实战项目

项目名称:Scrapy + Cookie 池 + 分布式爬虫综合实战

项目内容

  1. 分析目标网站反爬措施
  2. 编写 Spider 解析规则与数据抓取
  3. 开发 Downloader Middleware 接入 Cookie 池
  4. 实现代理池 + Cookie 池双重反反爬
  5. 基于 Scrapy-Redis 搭建分布式爬虫
  6. Scrapyd 部署与远程管理
  7. 多节点 Worker 分布式抓取

本章知识点

  • 爬虫项目实战全流程
  • 反爬措施综合分析与突破
  • Scrapy 框架架构与 Middleware 开发
  • Scrapy-Redis 分布式方案
  • Scrapyd 部署与管理
  • 分布式爬虫管理系统(Gerapy / Crawlab)

第九章:分布式爬虫架构方案

教学目标

  1. 理解分布式爬虫的优势与必要性
  2. 掌握下游业务如何使用爬取到的数据
  3. 掌握数据和文件的存储方案
  4. 掌握大数据存储架构选型

学习痛点

  • 爬了海量数据但不知道怎么存储和下游消费
  • 文件存储(图片/视频/PDF)没有系统方案
  • 大数据场景下 MySQL 扛不住,不知道该用什么

章节内容

9.1 分布式爬虫架构

  • 分布式爬虫的优势和必要性
  • 分布式爬虫架构方案讨论
  • 主从架构 vs 对等架构
  • 任务调度与负载均衡
  • 容错与故障恢复

9.2 下游数据消费

  • 下游业务如何使用爬取到的数据(17:13)
  • 数据清洗与结构化
  • 数据推送:API / 消息队列 / 数据库直写
  • 数据格式标准化

9.3 存储方案

  • 数据和文件的存储方案(14:22)
  • 结构化数据存储
    • MySQL / PostgreSQL:关系型存储
    • MongoDB:文档型存储,适合非结构化数据
    • Elasticsearch:全文检索与数据分析
  • 文件存储
    • 本地文件系统 + NFS
    • 对象存储:MinIO / OSS / S3
    • 分布式文件系统:HDFS
  • 大数据存储
    • HBase:列式存储,亿级数据毫秒查询
    • Hive:数据仓库,离线分析
    • ClickHouse:OLAP 实时分析
    • Spark:大数据计算框架

本章实战项目

项目名称:分布式爬虫数据存储与消费方案

项目内容

  1. 设计分布式爬虫整体架构
  2. 实现结构化数据入 MySQL / MongoDB
  3. 实现文件上传到对象存储(MinIO / OSS)
  4. 实现数据推送至下游业务(API + 消息队列)
  5. 大数据场景下 HBase / Hive 存储方案
  6. Spark 数据清洗与分析

本章知识点

  • 分布式爬虫架构设计(主从 / 对等)
  • 下游数据消费方案(API / MQ / DB)
  • 结构化数据存储选型(MySQL / MongoDB / ES)
  • 文件存储方案(本地 / 对象存储 / HDFS)
  • 大数据存储(HBase / Hive / ClickHouse / Spark)

第十章:课程终极测验

教学目标

  1. 巩固前述所有章节的核心知识点
  2. 通过 30 道测验题查漏补缺
  3. 检验学习效果

章节内容

10.1 HTTP 基础

  • HTTP 协议主流版本
  • 200/302/404/500 状态码含义
  • UA、Referer 请求头含义
  • HTTPS 安全原理

10.2 代理服务

  • 代理 IP 类型
  • 请求转发软件(Squid 等)
  • 短效 vs 长效代理选择

10.3 JS 逆向

  • 无限 Debugger 产生原因
  • JS 断点添加位置
  • 调度 JS 代码的 Python 库
  • Python 重构 vs 调度 JS 适用场景
  • 加解密算法列举
  • ReRes 插件工作原理
  • Cookie 与 Session 异同
  • Cookie 池使用场景
  • Cookie 属性列举
  • Cookie 池管理与维护方案

10.5 浏览器调度

  • Selenium vs PhantomJS 选型
  • 滑块验证码算法对比
  • Selenium 支持的浏览器

10.6 数据加密

  • 字体渲染全过程
  • Base64 在网页中的应用

10.7 分布式爬虫

  • Scrapy 框架组件
  • 下载器中间件职责
  • 分布式爬虫适用场景
  • Scrapyd 是什么
  • 分布式爬虫管理系统列举

10.8 大数据

  • Spark 优势
  • 分布式文件系统 vs 大数据文件系统
  • HBase vs Hive 差异与适用场景

本章知识点

  • 全课程知识点体系化复盘
  • 30 道测验题覆盖所有核心模块

第十一章:爬虫工程师简历指导

教学目标

  1. 掌握爬虫工程师简历制作要点
  2. 明确后续学习路线与资料推荐
  3. 制定个人成长计划

章节内容

11.1 简历制作

  • 一个合格的爬虫平台负责人的简历应该是怎样的?
  • 爬虫工程师简历核心要素:
    • 技术栈描述规范
    • 项目经验量化(抓取量、QPS、反爬突破)
    • 架构设计能力体现
    • 团队管理经验

11.2 课程总结

  • 课程总结及实用学习建议
  • 核心知识点回顾
  • 爬虫技术发展趋势

11.3 后续学习

  • 后续学习方法/资料/课程推荐
  • 进阶方向:
    • 反爬深度研究(AST 混淆、WebAssembly)
    • 大数据架构(Spark / Flink)
    • 机器学习辅助反爬(行为特征识别)
    • 爬虫架构师(分布式系统设计)

本章知识点

  • 爬虫工程师简历规范
  • 职业发展路径
  • 持续学习资源推荐

四大实战案例汇总

案例一:Squid + VPS 加密代理池搭建

  • 关联章节:第三章
  • 核心技能:Squid 部署、代理认证、代理池架构、可用性检测

案例二:逆向破解真实网站加密登录

  • 关联章节:第四章
  • 核心技能:JS 逆向分析、无限 Debugger 突破、断点调试、Python 重构/调度 JS
  • 关联章节:第五章
  • 核心技能:Cookie 持久化、协助式提取、Cookie 池架构、高并发有效性维护

案例四:Scrapy + 分布式爬虫综合实战

  • 关联章节:第八章
  • 核心技能:Scrapy 框架、Middleware 开发、Scrapy-Redis、Scrapyd 部署

学习路径建议

阶段一:基础准备(第 1-2 章)

  • 第一章:课程导学 + 环境搭建
  • 第二章:HTTP 网络基础(HTTPS、状态码、请求头、证书)

阶段二:反爬基础设施(第 3-5 章)

  • 第三章:代理服务搭建(Squid + 代理池)
  • 第四章:加密登录破解(JS 逆向 + Python 重构)
  • 第五章:Cookie 池管理(持久化 + 高并发维护)

阶段三:浏览器与数据解密(第 6-7 章)

  • 第六章:浏览器调度(Selenium + Puppeteer + 验证码识别)
  • 第七章:数据加密破解(字体加密 + Base64)

阶段四:综合实战与架构(第 8-9 章)

  • 第八章:反爬综合实战(Scrapy + Cookie 池 + 分布式)
  • 第九章:分布式架构方案(存储 + 下游消费)

阶段五:复盘与求职(第 10-11 章)

  • 第十章:终极测验(30 题查漏补缺)
  • 第十一章:简历指导 + 后续学习路线

技术栈全景

核心语言与标准库

  • Python 3.x
  • http.cookiejar / http.client / ssl
  • base64 / hashlib / hmac
  • asyncio / aiohttp
  • subprocess

爬虫框架

  • Scrapy:企业级爬虫框架
  • Scrapy-Redis:分布式爬虫方案
  • Scrapyd:爬虫部署与管理
  • Gerapy / Crawlab:分布式爬虫管理系统

浏览器自动化

  • Selenium:浏览器自动化测试框架
  • Puppeteer(Node.js):Headless Chrome 操作
  • Playwright:新一代浏览器自动化
  • undetected-chromedriver:Selenium 反检测

JS 逆向工具

  • Chrome DevTools:浏览器开发者工具
  • execjs / PyExecJS:Python 执行 JS
  • ReRes:JS 文件篡改插件
  • Tampermonkey:油猴脚本
  • Fiddler / Charles:抓包与 Map Local

代理与网络

  • Squid:代理服务软件
  • VPS:代理节点服务器
  • 代理 IP 服务商:快代理 / 芝麻代理 / 讯代理等

数据存储

  • 关系型:MySQL / PostgreSQL
  • 文档型:MongoDB
  • 搜索引擎:Elasticsearch
  • 缓存:Redis
  • 对象存储:MinIO / OSS / S3
  • 大数据:HBase / Hive / ClickHouse / Spark

图像处理

  • Pillow (PIL):Python 图像处理库
  • OpenCV:计算机视觉
  • Rembrandt:图像相似度比较
  • SSIM:结构相似性算法

面试要点汇总

高频面试题

  1. HTTP 基础:HTTPS 加密原理、状态码含义、请求头反爬识别、HTTP/2 多路复用
  2. 代理服务:Squid 搭建流程、代理池架构设计、短效 vs 长效代理选择、高匿代理原理
  3. JS 逆向:无限 Debugger 突破方法、JS 断点调试流程、ReRes 工作原理、execjs vs PyExecJS 选型
  4. Cookie 管理:Cookie vs Session、Cookie 池架构、高并发 Cookie 有效性维护、Cookie 属性
  5. 浏览器调度:Selenium vs Puppeteer 选型、Chrome 远程调试原理、CDP 协议
  6. 验证码识别:滑动验证码原理、RGB/Rembrandt/SSIM 算法对比、贝塞尔曲线轨迹模拟
  7. 数据加密:字体渲染流程、字体加密反爬原理、cmap 表解析、动态字体处理
  8. Scrapy 框架:架构组件、Middleware 开发、Pipeline 数据处理
  9. 分布式爬虫:Scrapy-Redis 原理、Scrapyd 部署、分布式任务调度
  10. 数据存储:MySQL vs MongoDB vs ES 选型、HBase vs Hive 差异、Spark 优势

实战能力清单

  • [ ] 能独立搭建 Squid 代理池并封装 Python 接口
  • [ ] 能逆向分析 JS 加密逻辑并用 Python 重构
  • [ ] 能搭建管理上万 Cookie 的高并发 Cookie 池
  • [ ] 能用 Puppeteer 实现滑动验证码自动识别
  • [ ] 能破解字体加密并批量还原数据
  • [ ] 能用 Scrapy + Redis 搭建分布式爬虫
  • [ ] 能用 Scrapyd 部署和管理爬虫服务
  • [ ] 能设计完整的数据存储与下游消费方案

附录

推荐学习资源

  • 《Python3 网络爬虫开发实战》— 崔庆才
  • 《爬虫逆向进阶实战》— 李玺
  • 《Web Scraping with Python》— Ryan Mitchell
  • Scrapy 官方文档(docs.scrapy.org)
  • Puppeteer 官方文档(pptr.dev)
  • Chrome DevTools 文档(developers.google.com/web/tools/chrome-devtools)

实践项目建议

  • 电商商品价格监控(代理池 + Cookie 池 + 分布式)
  • 社交媒体舆情采集(加密登录 + 浏览器调度 + 数据解密)
  • 招聘网站岗位聚合(Scrapy + Redis + Elasticsearch)
  • 新闻资讯聚合平台(全链路:采集 → 清洗 → 存储 → 检索)
  • 金融数据实时抓取(高并发 + 分布式 + 大数据存储)

课程对比:Python 高级爬虫 vs Python 实战训练营

维度Python 高级爬虫实战Python 实战训练营
定位爬虫工程师进阶Python 全栈工程师进阶
核心技能反爬破解、JS 逆向、分布式爬虫Web 框架、ORM、异步、微服务
难度高级中高级
时长22.5 小时96 小时(16周)
侧重数据采集层应用开发层
分布式Scrapy-Redis 分布式爬虫gRPC 微服务 + 分布式锁
数据处理数据存储与下游消费ETL 数据管道 + Airflow
工程化Scrapyd 部署管理Docker + K8s + CI/CD

互补关系:爬虫课程侧重数据采集与反爬,训练营课程侧重应用开发与架构。两者结合可覆盖从数据采集到应用的完整链路。

热爱生活,喜好美食,追求未来!