Jump to content

Python e Tkinter: Como Baixar Fotos de um Perfil do Instagram para uma Pasta Escolhida


Dev c4puz

Postagens Recomendadas

Alguém pode me ajudar a baixar as fotos do perfil que eu quero na pasta onde eu coloca no local? 

 

import tkinter as tk
from tkinter import Entry, Button, Label, ttk, filedialog, messagebox
import os
import instaloader

# Função para escolher o local de destino
def choose_destination():
    global download_folder
    download_folder = filedialog.askdirectory()
    destination_label.config(text=f"Local de destino: {download_folder}")

# Função para iniciar o download do perfil
def download_profile():
    profile_name = username_entry.get()
    num_photos = num_photos_var.get()

    if not profile_name:
        messagebox.showwarning("Aviso", "Por favor, insira um nome de perfil válido.")
        return

    if not isinstance(num_photos, int) or num_photos <= 0:
        messagebox.showwarning("Aviso", "Por favor, insira um número válido e maior que zero de fotos.")
        return

    if not download_folder:
        messagebox.showwarning("Aviso", "Por favor, escolha um local de destino.")
        return

    # Exibir mensagem de início do download
    download_progress_label.config(text="Baixando fotos...")

    L = instaloader.Instaloader(
        download_pictures=True,
        download_videos=False,
        download_video_thumbnails=False,
        download_geotags=False,
        save_metadata=False,
        post_metadata_txt_pattern=str(),
        max_connection_attempts=0,
        download_comments=False
    )

    profile = instaloader.Profile.from_username(L.context, profile_name)
    count = 0

    # Cria uma pasta com o nome do perfil no local de destino
    profile_folder = os.path.join(download_folder, profile_name)
    os.makedirs(profile_folder, exist_ok=True)

    for post in profile.get_posts():
        if count >= num_photos:
            break
        # Salva a foto na pasta do perfil
        L.download_post(post, target=profile_folder)
        count +=1

    # Exibir mensagem de conclusão do download
    messagebox.showinfo("Sucesso", f"Download concluído! Baixadas {count} fotos para a pasta '{profile_folder}'.")
    download_progress_label.config(text="")

# Configuração da janela
root = tk.Tk()
root.title("Baixador do Instagram")
root.geometry("400x300")

# Rótulo e entrada para o nome do perfil
username_label = Label(root, text="Nome do perfil:", bg='white')
username_label.pack(padx=10, pady=5)
username_entry = Entry(root)
username_entry.pack(padx=10, pady=5)

# Rótulo e entrada para a quantidade de fotos
num_photos_label = Label(root, text="Quantidade de fotos:", bg='white')
num_photos_label.pack(padx=10, pady=5)
num_photos_var = tk.IntVar()
num_photos_entry = Entry(root, textvariable=num_photos_var)
num_photos_entry.pack(padx=10, pady=5)

# Botão para escolher o local de destino
choose_button = Button(root, text="Escolher Local de Destino", bg='DeepSkyBlue', command=choose_destination, activebackground='DeepSkyBlue')
choose_button.pack(padx=10, pady=10)

# Rótulo para mostrar o local de destino escolhido
download_folder = ""
destination_label = Label(root, text="Local de destino: ", bg='white')
destination_label.pack(padx=10, pady=5)

# Botão para iniciar o download
download_button = Button(root, text="Baixar", bg='DeepSkyBlue', command=download_profile, activebackground='DeepSkyBlue')
download_button.pack(padx=10, pady=10)

# Rótulo para mostrar o progresso do download
download_progress_label = Label(root, text="", fg="LimeGreen", bg='white')
download_progress_label.pack(padx=10, pady=5)

# Iniciar a janela principal
root.mainloop()


Por favor, me ajudem!

Link to comment
Compartilhe em outros sites

  • Douglas Garcia mudou o título para Python e Tkinter: Como Baixar Fotos de um Perfil do Instagram para uma Pasta Escolhida
  • Pessoal da TecnoSpeed

Olá @Dev c4puz tudo bem?

Se puder me explicar onde exatamente esta com dificuldade vai facilitar para que eu possa lhe auxiliar.

Com base nisso em qual ponto está com dificuldade ?

  • Realizar o download das imagens do Instagram ?
  • Criar a interface via Tkinter ? 

Caso o código esteja gerando erro também fique a vontade para colocar as mensagens de erro que apresentam, tendo essas informações vou conseguir lhe auxiliar de forma mais assertiva. 👍

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...