Como Fazer Download Automático de Imagens de Sites com Python
Fazer isso manualmente é cansativo e pouco produtivo. Mas com Python podemos criar um robô simples e eficiente para baixar imagens automaticamente.
Neste artigo, você vai aprender:
O que é web scraping.
Como fazer download automático das imagens.
Como organizar e salvar as imagens em pastas.
Boas práticas e limitações legais.
🔹 O que é Web Scraping?
Web scraping é a técnica de coletar informações de páginas da web de forma automatizada.
No nosso caso, o alvo são as imagens: vamos buscar todas as imagens de uma página e baixá-las para o computador.
Ferramentas principais em Python:
requests → faz a requisição HTTP e baixa o conteúdo da página.
BeautifulSoup (biblioteca
bs4) → analisa o HTML e encontra as tags<img>.os → organiza as imagens em pastas.
🔹 Estrutura de um código simples
Antes de começar, instale as bibliotecas necessárias:
pip install requests beautifulsoup4
Agora, um exemplo básico para baixar imagens de um site:
import requests
from bs4 import BeautifulSoup
import os
# URL do site alvo
url = "https://www.exemplo.com"
# Pasta onde as imagens serão salvas
pasta = "imagens"
# Criar a pasta, se não existir
if not os.path.exists(pasta):
    os.makedirs(pasta)
# Fazer a requisição da página
resposta = requests.get(url)
soup = BeautifulSoup(resposta.text, "html.parser")
# Encontrar todas as tags de imagem
imagens = soup.find_all("img")
for i, img in enumerate(imagens):
    src = img.get("src")
    if src:
        # Corrigir URLs relativas
        if src.startswith("//"):
            src = "https:" + src
        elif src.startswith("/"):
            src = url + src
        try:
            # Baixar a imagem
            img_bytes = requests.get(src).content
            nome_arquivo = os.path.join(pasta, f"imagem_{i+1}.jpg")
            with open(nome_arquivo, "wb") as f:
                f.write(img_bytes)
            print(f"✅ Imagem salva: {nome_arquivo}")
        except Exception as e:
            print(f"❌ Erro ao baixar {src}: {e}")
🔹 Como funciona o código?
Fazemos a requisição HTTP para pegar o conteúdo do site.
Usamos o BeautifulSoup para analisar o HTML.
Pegamos todas as tags
<img>e coletamos o atributosrc.Corrigimos URLs relativas (que começam com
/).Baixamos os arquivos com
requests.get()e salvamos localmente.
🔹 Exemplo prático – Baixar imagens do Unsplash (grátis e legal)
O site Unsplash oferece imagens livres para uso. Vamos criar um exemplo para baixar as primeiras imagens da página inicial:
url = "https://unsplash.com"
resposta = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
soup = BeautifulSoup(resposta.text, "html.parser")
imagens = soup.find_all("img")
for i, img in enumerate(imagens[:10]):  # pega só as 10 primeiras
    src = img.get("src")
    if src and src.startswith("http"):
        nome_arquivo = os.path.join(pasta, f"unsplash_{i+1}.jpg")
        with open(nome_arquivo, "wb") as f:
            f.write(requests.get(src).content)
        print(f"✅ Imagem salva: {nome_arquivo}")
🔹 Organizando em subpastas
Se quiser salvar imagens de vários sites diferentes, podemos criar subpastas automáticas com base no nome do domínio:
from urllib.parse import urlparse
dominio = urlparse(url).netloc
pasta_site = os.path.join("imagens", dominio)
if not os.path.exists(pasta_site):
    os.makedirs(pasta_site)
Assim, imagens do unsplash.com ficam em imagens/unsplash.com/.
🔹 Possíveis melhorias
Tratar duplicadas: verificar se a imagem já existe antes de salvar.
Nomear pelas URLs: em vez de
imagem_1.jpg, usar parte da URL original.Baixar em paralelo: usar
concurrent.futurespara acelerar downloads.Buscar por palavras-chave: automatizar a busca em sites como Google Images ou Bing (cuidado com limites).
🔹 Cuidados Legais e Éticos
⚠️ Importante: não é permitido baixar imagens de qualquer site sem verificar os direitos de uso.
Sempre cheque os termos de uso do site.
Prefira bancos de imagens gratuitos, como Unsplash, Pexels ou Pixabay.
Evite sobrecarregar servidores (coloque pausas entre requisições, se baixar muitas imagens).
🔹 Conclusão
Criar um sistema automático para download de imagens em Python é uma excelente forma de:
✔ Aprender web scraping.
✔ Praticar manipulação de arquivos.
✔ Automatizar tarefas que seriam manuais e demoradas.
Esse projeto pode evoluir para algo maior, como:
Montar datasets para machine learning.
Criar um crawler de produtos para e-commerce.
Fazer backups automáticos de imagens de sites.
💡 Desafio para você: adapte o código para aceitar lista de URLs em um arquivo .txt, baixando imagens de todos os sites automaticamente.

Comentários
Postar um comentário