проект в Python Skill Tree

Сбор фотокаталога через API

Создайте повторно используемый HTTP-клиент на Python для обхода всех страниц каталога, отбора фотографий и экспорта корректного CSV с сохранением предыдущего полного файла при сбое сбора.

ПроектPython

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Сбор фотокаталога через API — практический проект на Python для тех, кто уже умеет писать небольшие программы. Помогите редактору общественной фототеки превратить предварительный просмотр первой страницы в полный отфильтрованный каталог CSV. Вы создадите повторно используемый клиент для подготовленного локального HTTP API и сохраните предыдущий полный экспорт при сбое последующего запроса.

Две пошаговые лабораторные работы проведут вас от чтения одного ответа до обхода всех курсоров, удаления повторов ID и публикации полного результата. В самостоятельном задании те же методы применяются к другой коллекции, размеру страницы и условиям отбора. Каждый модуль начинается в собственной подготовленной среде. Ориентируйтесь примерно на 110–150 минут: это оценка автора, а не время, измеренное при работе новичков.

Чему вы научитесь

После завершения курса вы сможете:

  • запрашивать записи JSON по HTTP, кодировать параметры запроса, задавать тайм-аут и отличать успешные ответы от ошибок HTTP;
  • обращаться с курсорами пагинации как с непрозрачными значениями и продолжать до null в next_cursor, даже после пустых или неполных страниц;
  • сохранять одну запись на каждый стабильный ID фотографии, не объединяя разные фотографии с одинаковым названием;
  • точно фильтровать по категории и ориентации с учётом регистра и записывать все пять полей в корректный CSV UTF-8, оставляя только заголовок при отсутствии совпадений;
  • отклонять неудачный запрос или цикл повторяющихся курсоров с ненулевым кодом завершения, сохраняя предыдущий полный результат;
  • публиковать успешный экспорт через уникальный временный файл в каталоге вывода, не перезаписывая посторонние соседние файлы;
  • использовать ту же программу с другим предоставленным URL коллекции, размером страницы, фильтрами и путём вывода.

Для кого этот курс

Курс предназначен для изучающих Python, которые хотят применить знакомые циклы и коллекции для создания полезного API-клиента и повторно используемого файла данных.

Предварительные требования: Функции, коллекции, циклы, исключения и базовый вывод в файлы на Python, а также основы работы с терминалом. Подойдёт проект списка покупок для пикника или эквивалентный опыт. HTTP, структура ответов JSON, кодирование URL, курсоры, кавычки CSV и замена через временный файл объясняются в пошаговых лабораторных работах.

Учебная среда: LabEx предоставляет редактор Python и терминал в браузере, а также специально созданный локальный демонстрационный API. В каталоге используются синтетические иллюстрации и вымышленные сведения об авторах. Исходные данные, код службы и медиаматериалы остаются неизменными; для упражнений по сбоям и восстановлению разрешены только явно описанные демонстрационные элементы управления ошибками и циклами курсоров. Надписи и вывод среды выполнения остаются на английском языке.

Часто задаваемые вопросы

Нужны ли внешний аккаунт или ключ API?

Нет. Запросы отправляются подготовленной локальной демонстрационной службе. Вы не обращаетесь к размещённому у провайдера фотосервису, не собираете данные с внешних сайтов и не реализуете аутентификацию.

Буду ли я создавать сайт или скачивать фотографии?

Нет. Вы пишете клиент Python и экспортируете метаданные фотографий в CSV. Предоставленные иллюстрации помогают узнавать записи; скачивание изображений, рисование и веб-разработка в проект не входят.

Что произойдёт, если сбор прервётся на середине?

Клиент должен завершиться с ошибкой и сохранить существующий полный экспорт. После восстановления демонстрационной службы вы начинаете новый конечный пакет с самого начала. Автоматические повторные попытки и продолжение прерванных пакетов в курс не входят. Локальная замена файла не гарантирует сохранность при отключении питания или координацию параллельной записи.

Как самостоятельное задание развивает лабораторные работы?

Вы собираете другую коллекцию с иными параметрами и подходящими записями на последней странице. Инструменты, правила пагинации, фильтрация, формат CSV и обработка сбоев уже изучены.

Преподаватель

labby
Labby
Labby is the LabEx teacher.

Рекомендовано для вас

no data