从 API 采集照片目录是一门面向能够编写小程序的学习者的 Python 实践项目。你将帮助社区照片库编辑,把第一页预览变成完整的筛选 CSV 目录。你会为已准备的本地 HTTP API 编写可复用客户端,并在后续请求失败时保护先前完整的导出文件。
两个引导实验带你从读取单次响应,逐步完成游标遍历、按 ID 去重和完整结果发布。独立挑战要求你将同样的方法用于不同集合、分页大小和筛选条件。每个单元都有独立准备的环境。建议预留约 110~150 分钟;这是作者估计,并非初学者完成时间的实测结果。
你将学到什么
完成本课程后,你将能够:
- 通过 HTTP 请求 JSON 记录,对查询参数编码,设置请求超时,并区分成功响应与 HTTP 错误;
- 把分页游标当作不透明值处理,即使出现空页或短页,也继续请求直到
next_cursor为null; - 按稳定照片 ID 保留唯一记录,同时保留标题相同但身份不同的照片;
- 对类别和方向进行区分大小写的精确筛选,将全部五个字段写成有效的 UTF-8 CSV;没有匹配记录时,输出只含表头;
- 遇到请求失败或游标重复循环时以非零状态退出,保留先前完整的输出;
- 使用输出目录中唯一的临时文件发布成功导出,不覆盖无关的相邻文件;
- 使用同一程序处理不同的给定集合 URL、分页大小、筛选条件和输出路径。
本课程适合谁
本课程适合希望把熟悉的循环与集合用于实用 API 客户端和可复用数据文件的 Python 学习者。
前置要求: 掌握 Python 函数、容器类型(如列表和字典)、循环、异常、基本文件输出和基本终端操作。完成野餐采购清单项目或具备同等经验即可。引导实验会讲解 HTTP、JSON 响应结构、URL 编码、游标、CSV 引号规则和临时文件替换。
学习环境: LabEx 提供浏览器中的 Python 编辑器、终端和原创本地演示 API。目录使用合成插画和虚构署名。来源数据、服务代码和素材保持不变;只有明确说明的演示故障及游标循环控件可用于练习错误与恢复。运行界面的标签和输出保留英文。
常见问题
我需要外部账号或 API 密钥吗?
不需要。请求发送到准备好的本地演示服务。你不会连接托管照片提供商、抓取外部网站或实现身份认证。
我会制作网站或下载照片吗?
不会。你编写 Python 客户端,并将照片元数据导出为 CSV。提供的插画帮助你辨认记录;图片下载、绘图和网站开发不在本项目范围内。
如果采集进行到一半停止,会发生什么?
客户端必须报错退出,并保留已有的完整导出。恢复演示服务后,你会重新开始一个有限批次。自动重试和中断续传不在课程范围内。本地文件替换不承诺断电持久性或并发写入协调。
挑战如何延伸引导实验?
你将使用不同参数采集另一个集合,其中末页含有匹配记录。所需工具、分页规则、筛选、CSV 格式和错误处理方法均已在引导实验中教授。

