Как я создал загрузчик фотографий из профиля 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: Это мой первый блог/статья, поэтому, если я допустил ошибки, не обращайте внимания и дайте мне знать, я исправлю.
Спасибо за чтение! И хорошего дня!