单元 2 · 数据解析 — 预计 45 分钟

单页数据实战

📍 本课路径45 分钟 · 3 个目标
  1. 独立完成单页爬取流程
  2. 将结果保存为 CSV
  3. 结合靶站 Level 1 实操
🎯 学习节奏:① 看目标 → ② 先思考再动手 → ③ 在运行器写代码 → ④ 失败时按提示重试 → ⑤ 通过后看思路

前面学的解析(BeautifulSoup、XPath)终于要落地了:这一章我们完整爬取一个列表页,并把结果存成 CSV 文件。凡是「列表页 → 抓数据 → 落库」,骨架都一样。

一、单页爬取的通用四步

请求(request) → 解析(parse) → 提取(extract) → 存储(store)
  1. 请求:拿到网页 HTML(用 requests.get)。
  2. 解析:BeautifulSoup(html, "lxml") 变成可查询对象。
  3. 提取:select / xpath 取出每一条数据,整理成字典列表。
  4. 存储:写进 CSV / 数据库。

二、可运行:解析列表并收集为字典列表

下面需要你补全——给定图书列表 HTML,把每本书解析成 {"title":..., "price":...} 字典并收集:

三、保存为 CSV

拿到字典列表后,用标准库 csv 落盘。你需要补全写入逻辑:

真实落地只要把 io.StringIO() 换成 open("books.csv", "w", newline="", encoding="utf-8"),其余写法完全一致。newline="" 能避免 Windows 下多出空行。

四、串联靶站

打开 Level 1 靶站,用浏览器「检查」观察表格结构,然后用本课的思路把 24 行书名价格抓出来。本页底部的「代码实战」会带你做一遍。

五、小结

靶站实战:前往 /practice/level1-books/ 动手练习本课内容。