Как я создал загрузчик фотографий из профиля Instagram с помощью Python и Tkinter

Отказ от ответственности: это только в образовательных целях, и, пожалуйста, не используйте это неправильно, загружая изображение профиля случайного человека.

Привет ребята!

Сегодня я поделюсь своим кодом и опытом, который у меня был при создании этого небольшого проекта под названием «Instagram Profile Pic Downloader».

Прочитав этот блог, вы сможете создать пользовательский интерфейс загрузчика с помощью Tkinter.

Во-первых, давайте обсудим некоторые основные вещи, которые вам нужно знать о TKinter и NSIS:

Что такое Tkinter ?

  • Tkinter — это стандартная библиотека графического интерфейса для Python.
  • Python в сочетании с Tkinter обеспечивает быстрый и простой способ создания приложений с графическим интерфейсом.
  • Tkinter предоставляет мощный объектно-ориентированный интерфейс для набора инструментов Tk GUI.

Начинается самое интересное

Итак, давайте начнем с части кодирования и надеемся, что это поможет вам понять инструмент Tkinter и NSIS.

Итак, сначала мы импортируем 2 модуля: один — instaloader, а другой — tkinter.

Перед этим вам необходимо установить модуль instaloader.

Для этого просто откройте командную строку и выполните следующую команду:

pip install instaloader или pip3 install instaloader

import instaloader
import tkinter

Модуль Instaloader — это пакет Python, обладающий большими функциональными возможностями для удаления instagram. Он используется для загрузки: постов публичного/частного аккаунта, историй, IGTV.

Но здесь мы будем использовать Instaloader только для загрузки изображений профиля учетной записи независимо от того, является ли она общедоступной или частной.

Теперь создадим холст/окно программы.

root = tk.Tk()
root.title("profile Pic Downloader")
root.geometry("300x200")

Размер окна будет 300 x 200, а заголовок будет "Загрузчик фотографий профиля".

Вы можете установить размер и название по своему усмотрению.

Теперь давайте объявим переменную и функцию для загрузки изображения профиля.

user_var = tk.StringVar()
def download():
    mod = instaloader.Instaloader()
    mod.download_profile(user_entry.get(), profile_pic_only=True)
    user_entry.delete(0, tk.END)

Итак, user_var — это переменная, в которой будет храниться имя пользователя профиля.

А в функции download() в первой строке мы загружаем модуль instaloader. А затем с помощью функции download_profile модуля instaloader.

Вы можете видеть, что второй параметр этой функции, мы написали profile_pic_only = True. Это говорит о том, что будет загружено только изображение профиля.

Теперь мы создадим метку, текстовое поле и кнопку и разместим их в окне, которое мы создали выше.

user_label = tk.Label(root, text = 'Enter Insta Id: ', font=('calibre', 10, 'bold'))
user_entry = tk.Entry(root, textvariable = user_var, font=('calibre',10,'normal'))
download_button = tk.Button(root, text = 'Download', command = download)
user_label.grid(row=0,column=0)
user_entry.grid(row=0,column=1)
download_button.grid(row=1,column=1)
root.mainloop()

user_label просто содержит метку, а user_entry — это текстовое поле, в которое вы вводите имя пользователя профиля, который хотите загрузить.

А строка под кнопкой — это коды для размещения всех надписей, текстового поля и кнопок на холсте. Здесь мы использовали grid(), чтобы разместить их в окне.

И последняя строка предназначена для удержания всего окна до нажатия крестообразной кнопки.

Ниже приведен весь код проекта:

import instaloader
import tkinter as tk
root = tk.Tk()
root.title("profile Pic Downloader")
root.geometry("300x200")
user_var = tk.StringVar()
def download():
    mod = instaloader.Instaloader()
    mod.download_profile(user_entry.get(), profile_pic_only=True)
    user_entry.delete(0, tk.END)
user_label = tk.Label(root, text = 'Enter Insta Id: ', font=('calibre', 10, 'bold'))
user_entry = tk.Entry(root, textvariable = user_var, font=('calibre',10,'normal'))
download_button = tk.Button(root, text = 'Download', command = download)
user_label.grid(row=0,column=0)
user_entry.grid(row=0,column=1)
download_button.grid(row=1,column=1)
root.mainloop()

Попробуйте, и если вам понравилась эта статья, ставьте аплодисменты, и если вы столкнетесь с какими-либо трудностями в коде, оставьте комментарий, и я помогу вам.

P S: Это мой первый блог/статья, поэтому, если я допустил ошибки, не обращайте внимания и дайте мне знать, я исправлю.

Спасибо за чтение! И хорошего дня!