Как скачать изображение профиля Instagram с помощью Python
Фотографии профиля в Instagram маленькие. Вот как загрузить изображение профиля с помощью Python и просмотреть его в полном разрешении.
Изображение профиля является одним из основных элементов любой учетной записи в социальной сети, но такие приложения, как Instagram, не позволяют вам просматривать или загружать его. Этого процесса можно легко добиться с помощью инструмента веб-автоматизации, такого как Selenium с Python.
Научитесь использовать этот мощный дуэт для взаимодействия с любым элементом веб-страницы, его автоматизации и сэкономите себе бесценное время, вкладываясь в продуктивные задачи. И лучшая часть? Создайте это, даже не входя в систему и не имея учетной записи Instagram!
Процесс построения алгоритма
Построение алгоритма — это процесс выявления проблемы и составления списка шагов, которые программа должна автоматизировать. Для загрузки изображения профиля необходимо выполнить следующие действия:
- Возьмите имя пользователя профиля в качестве входных данных.
- Откройте Гугл Хром
- Посетите профиль Инстаграм
- Загрузите изображение профиля
Это служит алгоритмом постановки задачи.
Понимание и установка необходимых модулей и инструментов
В этом проекте используются следующие модули и инструменты Python.
1. Модуль Urllib
Urllib — это модуль Python, используемый для обработки URL-адресов из Интернета. Вы собираетесь использовать этот модуль для загрузки изображения профиля учетной записи с исходного URL-адреса. Если Urllib отсутствует в вашей системе, вы можете установить его с помощью команды pip install urllib.
2. Модуль времени
Этот модуль, хотя и не является обязательным, может привести к сбою сборки, если у вас медленное подключение к Интернету или содержимое веб-страницы не загружается во время взаимодействия программы Python с веб-страницей. Функция задержки() помогает нам установить небольшую задержку, чтобы сборка не провалилась.
3. Селеновый модуль
Одним из самых популярных инструментов автоматизации браузеров с открытым исходным кодом является Selenium. Он доступен в виде пакета Python, поддерживающего различные браузеры, такие как Google Chrome, Microsoft Edge, Safari и Mozilla Firefox. Чтобы установить Selenium в среду Python, откройте Терминал и выполните pip install selenium.
4. Веб-драйвер
Веб-драйвер — это инструмент, используемый Selenium, который устанавливает соединение между программой и любым веб-сайтом. В зависимости от браузера, который вы хотите автоматизировать, доступны различные типы веб-драйверов. Для этой сборки вы будете использовать браузер Google Chrome. Чтобы установить веб-драйвер для Chrome:
Проверьте версию используемого вами браузера, посетив Меню (3 точки) >Справка > О Google Chrome.
Обратите внимание на версию браузера.
- Посетите страницу загрузок ChromeDriver — WebDriver для Chrome.
Выберите вариант, соответствующий номеру вашей версии из текущих выпусков ChromeDriver.
Выберите и загрузите файл в соответствии с вашей операционной системой.
- Извлеките загруженный файл и поместите его в ту же папку, что и ваша программа Python. Это будет полезно при настройке пути во время кодирования.
Как проверить код для автоматизации любого аспекта веб-страницы
Для любого процесса веб-автоматизации с использованием Selenium и Python важно иметь базовое понимание Интернета и его технологий. Первым шагом является знакомство с HTML, а затем понимание каскадных таблиц стилей (CSS). Здесь вы познакомитесь с концепцией идентификаторов и классов.
Идентификаторы и классы — это уникальные имена, присвоенные элементу или набору элементов (тегов) соответственно. Используя их, вы находите необходимый элемент и указываете программе Python нацелиться именно на него. Чтобы проверить код и найти изображение профиля:
- Откройте страницу аккаунта Instagram.
Нажмите браузер Меню > Дополнительные инструменты > Инструменты разработчика или используйте сочетание клавиш Ctrl + Shift + I, чтобы активировать представление Инструменты разработчика.
Нажмите и выберите инструмент Выбор элемента (значок курсора мыши) в левом углу окна и наведите его на любую часть веб-страницы, чтобы перейти к этому разделу кода.
Важно отметить, что изображения профиля общедоступной и частной учетной записи устанавливаются по-разному. Наведите курсор на изображение профиля общедоступной учетной записи. Атрибут класса общедоступного профиля — _aa8j.
Повторите вышеуказанный шаг для частного профиля. Атрибут класса — _aadp.
Вы можете использовать эту процедуру, чтобы понять любую веб-страницу и настроить любой элемент для автоматизации.
Как создать загрузчик фотографий профиля Instagram
Выполните следующие действия, чтобы создать загрузчик.
Импортируйте необходимые модули в среду Python.
from selenium import webdriver import time import urllib.request
Используя функцию ввода, получите имя пользователя профиля, изображение профиля которого необходимо загрузить, и сохраните его в переменной с именем username.
#entering the username of the profile whose profile picture is to be downloaded username=input("Enter the username of the profile: ")
Инициализируйте веб-драйвер, создав его объект и передав путь к его файловой системе.
#creating an object of chromedriver cd='chromedriver.exe'
Используйте функцию webdriver.Chrome, чтобы запустить браузер Google Chrome.
#open google chrome browser driver = webdriver.Chrome(cd)
URL-адрес любой учетной записи Instagram имеет формат https://www.instagram.com/, за которым следует имя пользователя. Установите URL-адрес профиля следующим образом:
#setting the url url='https://www.instagram.com/' url_p=url+user_h
Передайте полный URL-адрес профиля Instagram, который нужно посетить, в функцию get().
#open the profile driver.get(url_p)
Установите дополнительную рекомендуемую задержку для полной загрузки веб-страницы.
#delay for page content loading time.sleep(5)
Используйте блок try-кроме, чтобы найти и определить, принадлежит ли изображение профиля общедоступному профилю. Это делается с помощью атрибута class в выражении XPath. В случае неудачи используйте блок «Исключение» для поиска изображения профиля частной учетной записи.
try: #if profile is public, search for image with class _aa8j image=driver.find_element_by_xpath('//img[@class="_aa8j"]') except: #if profile is private, search for image with class _aadp image=driver.find_element_by_xpath('//img[@class="_aadp"]')
Используя get_attribute(), получите атрибут src изображения. Это возвращает ссылку на изображение.
#store the download link of image img_link=image.get_attribute('src')
Укажите путь и расширение загружаемого файла. Например, вы можете настроить загрузку изображения на диск D: вашей файловой системы в формате JPG как.
#set path of downloaded file path="D:\\"+username+".jpg"
Загрузите изображение, передав ссылку на изображение профиля в качестве источника и путь к локальной системной папке в качестве места назначения функции urlretrieve().
#downloading image to the required destination urllib.request.urlretrieve(img_link,path)
Зайдите в папку и увидите, что изображение профиля загружено. При желании вы также можете отобразить путь, по которому было загружено изображение профиля.
#displaying the path of the profile pic downloaded print("The profile pic has been downloaded at: "+path)
Окончательный исходный код для загрузчика изображений профиля Instagram с использованием Python
Объединив все это, вы получите:
#importing the required modules
from selenium import webdriver
import time
import urllib.request
#entering the username of the profile whose profile picture is to be downloaded
user_h=input("Enter the username of the profile: ")
#setting the url
url='https://www.instagram.com/'
url_p=url+user_h
#creating object of chromedriver
cd='chromedriver.exe'
#open google
driver = webdriver.Chrome(cd)
#open the profile
driver.get(url_p)
#delay for page content loading
time.sleep(5)
try:
#if profile is public, search for image with class _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
except:
#if profile is private, search for image with class _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')
#store the download link of image
img_link=image.get_attribute('src')
Приложения веб-автоматизации
Автоматизация не только помогает вам сэкономить время, деньги и усилия, но и гарантирует выполнение задач, предотвращая ошибки. Используйте этот метод, чтобы автоматизировать вход на различные веб-сайты, выполнять резервное копирование облачных серверов, планировать сообщения, поздравлять дни рождения в социальных сетях, создавать сообщения, публиковать твиты и многое другое.