Python 现代开发学习笔记

09-02 处理不同卡片结构

本章题解 · 全部练习

题目

让某本没有标签、另一本书名包含 em,再让第三本缺少详情链接。分别预测解析结果,保留空标签,反馈具体错误来源。

推导与做法

h1 的文本应沿节点收集,em 只改变标记结构,不应让书名截断。没有 ul.tags 时,select 返回空序列,保留空标签列表即可。

缺少 a.detail 则无法建立详情任务,必须携带当前目录地址报错。代码分别调用真实详情解析和目录解析,得到“Python 入门”、空标签,以及包含来源 URL 的错误。

实现与运行

查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。

在配套目录的 爬虫与数据采集/crawler_project 中运行。先按项目 README 执行 uv sync --locked。

# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch09.py" 09-02

程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。

查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
  "title": "Python 入门",
  "tags": [],
  "missing_link": "https://practice.invalid/page/1:某张卡片缺少详情链接"
}

笔记正文与全部题解 · Ctrl / ⌘ K