Python 现代开发学习笔记

(二十四)独立练习与后续衔接

  1. 自拟:给目录增加第四页。 放入两本已存在的书和一本新书;先手算卡片总数与唯一记录数,再运行同步和完整采集器,对照待处理任务与最终记录。
  2. 自拟:处理不同卡片结构。 让某本没有标签、另一本书名包含 em,再让第三本缺少详情链接。分别预测解析结果,保留空标签,反馈具体错误来源。
  3. 自拟:区分 URL 与记录身份。 同时安排 b101 的正常地址和别名,检查两项 URL 任务完成而结果只有一本;再增加 edition 查询,解释哪些查询参与资源选择。
  4. 自拟:从失败恢复。 让 b103 前两次返回 503,再让它持续失败。核对尝试次数、日志、已完成数量,以及修复后仅重新读取这一项的请求记录。
  5. 自拟:验证提交中断。 在完成标记更新前制造数据库错误,确认结果插入也回滚;去掉故障重新运行,检查这本书重新进入待处理任务。
  6. 自拟:改用固定工作任务。 用上一章的有界队列替代按批下载,保持共享开始门,保存仍交给一个协调环节;对照相同输入的记录、最大同时处理数量和取消后状态。
  7. 自拟:采集动态第三页。 扩展 Playwright 例子,按实际按钮状态走完三页;每次分别等待接口与 DOM,最终保留六个编号,并与直接读取 JSON 的结果比较。
  8. 自拟:把记录交给下一阶段。 从采集库统计标签分布和已读比例,生成一份简短报告;保留字段含义、统计分母与具体数据,后面的 NumPy 可以继续处理这些记录。

这一章把书籍库的数据入口接到了页面与接口,也把异步等待、失败反馈和持久化进度放进了同一项任务。接下来的 Pygame 切换到另一种应用:输入不再是一批页面,而是持续到来的鼠标、键盘与时间变化。前面“接收输入、更新状态、产生输出”的推进方式,会继续用来解释游戏中的每一帧。

本章习题解答与推导 按题号整理实现、过程说明与运行检查,可在完成练习后逐项对照。

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