单元 3 · 进阶爬取 — 预计 50 分钟

JSON 接口与数据存储

📍 本课路径50 分钟 · 3 个目标
  1. 识别并请求 JSON 接口
  2. 解析嵌套 JSON 结构
  3. 使用 SQLite 存储结构化数据
🎯 学习节奏:① 看目标 → ② 先思考再动手 → ③ 在运行器写代码 → ④ 失败时按提示重试 → ⑤ 通过后看思路

很多现代网站的数据根本不在 HTML 里——它在背后一个 JSON 接口 返回,前端再用 JS 渲染。直接抓接口,往往比解析 HTML 更干净、更稳。

一、发现 JSON 接口

打开浏览器 F12 → Network,筛选 XHR / Fetch,刷新页面,看那些返回 Content-Type: application/json 的请求。它的 URL 就是你要抓的接口。

import requests

resp = requests.get(api_url, headers=headers, timeout=5)
data = resp.json()      # 直接把响应体解析成 dict / list

接口常带分页参数(如 ?offset=0&limit=20),翻页方式和 HTML 分页一样。

二、可运行:解析嵌套 JSON

下面给你一段 JSON 接口的返回数据,你需要补全解析逻辑:

三、用 SQLite 持久化

抓来的数据要落库才方便查询。标准库 sqlite3 零配置,下面需要你补全建表、插入、查询:

真实场景把 :memory: 换成文件名(如 "books.db"),数据就持久保存在磁盘上。

四、串联靶站

Level 4 靶站 找一个返回 JSON 的接口,用 resp.json() 解析,再写进 SQLite。

五、小结

靶站实战:前往 /practice/level4-json-api/ 动手练习本课内容。