单元 5 · 规范与综合实战 — 预计 90 分钟

综合项目实战

📍 本课路径90 分钟 · 3 个目标
  1. 独立完成完整爬虫项目
  2. 串联请求、解析、存储全部技能
  3. 编写健壮的异常处理与日志
🎯 学习节奏:① 看目标 → ② 先思考再动手 → ③ 在运行器写代码 → ④ 失败时按提示重试 → ⑤ 通过后看思路

学完所有章节,是时候串成完整项目了。这一章以「爬取图书榜存 CSV + SQLite」为例走完全流程。

一、需求分析

二、项目结构

crawler/
├── crawler.py      # 主程序
├── books.csv       # 产出
└── books.db        # 产出

三、可运行:迷你爬虫端到端

下面是一个缩微版全流程,你需要补全三个核心步骤:

四、异常处理与日志

import logging, time, random
import requests

logging.basicConfig(filename="crawler.log", level=logging.INFO)

def fetch(url, headers):
    for attempt in range(3):
        try:
            resp = requests.get(url, headers=headers, timeout=5)
            resp.raise_for_status()
            return resp.text
        except requests.exceptions.RequestException:
            time.sleep(random.uniform(2, 5))
    return None

五、交付清单

六、小结