Coletando um catálogo de fotos de uma API

Crie um cliente HTTP Python reutilizável que percorra todas as páginas do catálogo, filtre fotos, exporte CSV válido e preserve um arquivo completo anterior se a coleta falhar.

ProjetoPython

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Coletando um catálogo de fotos de uma API é um projeto prático de Python para quem já sabe escrever pequenos programas. Ajude a equipe editorial de uma biblioteca comunitária de fotos a transformar a prévia da primeira página em um catálogo CSV completo e filtrado. Você criará um cliente reutilizável para uma API HTTP local preparada e protegerá uma exportação completa anterior quando uma solicitação posterior falhar.

Dois laboratórios guiados levam você da leitura de uma resposta ao acompanhamento de todos os cursores, à remoção de IDs duplicados e à publicação de um resultado completo. Um desafio independente aplica os mesmos métodos a outra coleção, com outro tamanho de página e outros critérios de seleção. Cada unidade começa com seu próprio ambiente preparado. Reserve aproximadamente 110–150 minutos; essa é uma estimativa do autor, não um tempo medido com iniciantes.

O que você aprenderá

Ao concluir o curso, você poderá:

  • solicitar registros JSON por HTTP, codificar parâmetros de consulta, usar um tempo limite de solicitação e distinguir respostas bem-sucedidas de erros HTTP;
  • tratar os cursores de paginação como valores opacos e continuar até que next_cursor seja null, inclusive após páginas vazias ou curtas;
  • manter um registro por ID estável de foto, preservando fotos distintas que tenham o mesmo título;
  • filtrar categoria e orientação por correspondência exata e sensível a maiúsculas e minúsculas, e escrever os cinco campos como CSV UTF-8 válido, com apenas o cabeçalho quando não houver correspondências;
  • rejeitar uma solicitação com falha ou um ciclo de cursores repetidos com código de saída diferente de zero, preservando a saída completa anterior;
  • publicar uma exportação bem-sucedida por meio de um arquivo temporário único no diretório de saída, sem sobrescrever arquivos vizinhos alheios;
  • reutilizar o mesmo programa com outra URL de coleção fornecida, tamanho de página, filtros e caminho de saída.

Para quem é este curso

Este curso é indicado para estudantes de Python que desejam transformar laços e coleções conhecidos em um cliente API útil e um arquivo de dados reutilizável.

Pré-requisitos: Funções, coleções, laços, exceções e escrita básica de arquivos em Python, além do uso básico do terminal. O projeto de lista de compras para um piquenique ou uma experiência equivalente é uma preparação adequada. Os laboratórios guiados explicam HTTP, a estrutura JSON das respostas, a codificação URL, os cursores, as aspas de CSV e a substituição por arquivo temporário.

Ambiente de aprendizagem: A LabEx fornece um editor Python e um terminal no navegador, além de uma API local de demonstração original. O catálogo usa ilustrações sintéticas e créditos fictícios. Dados de origem, código do serviço e mídias permanecem inalterados; somente os controles de falha e ciclo de demonstração explicitamente documentados podem ser usados para praticar erros e recuperação. Os rótulos e as saídas do ambiente continuam em inglês.

Perguntas frequentes

Preciso de uma conta externa ou de uma chave API?

Não. As solicitações são enviadas ao serviço local de demonstração preparado. Você não acessa um provedor de fotos hospedado, não coleta dados de sites externos nem implementa autenticação.

Vou criar um site ou baixar fotos?

Não. Você escreve o cliente Python e exporta metadados das fotos como CSV. As ilustrações fornecidas tornam os registros reconhecíveis; download de imagens, desenho e desenvolvimento de sites estão fora deste projeto.

O que acontece se a coleta parar no meio?

O cliente deve encerrar com erro e preservar uma exportação completa existente. Depois de restaurar o serviço de demonstração, você inicia um novo lote finito. Novas tentativas automáticas e retomada de lotes interrompidos não fazem parte do curso. A substituição local de arquivos não promete durabilidade em caso de falta de energia nem coordenação de gravações concorrentes.

Como o desafio amplia os laboratórios guiados?

Você coleta outra coleção com parâmetros diferentes e registros correspondentes na última página. As ferramentas, regras de paginação, filtragem, formato CSV e tratamento de falhas já foram ensinados.

Professor

labby
Labby
Labby is the LabEx teacher.

Recomendado para Você

no data