Поиск по сайту:

Как скачать изображение профиля Instagram с помощью Python


Фотографии профиля в Instagram маленькие. Вот как загрузить изображение профиля с помощью Python и просмотреть его в полном разрешении.

Изображение профиля является одним из основных элементов любой учетной записи в социальной сети, но такие приложения, как Instagram, не позволяют вам просматривать или загружать его. Этого процесса можно легко добиться с помощью инструмента веб-автоматизации, такого как Selenium с Python.

Научитесь использовать этот мощный дуэт для взаимодействия с любым элементом веб-страницы, его автоматизации и сэкономите себе бесценное время, вкладываясь в продуктивные задачи. И лучшая часть? Создайте это, даже не входя в систему и не имея учетной записи Instagram!

Процесс построения алгоритма

Построение алгоритма — это процесс выявления проблемы и составления списка шагов, которые программа должна автоматизировать. Для загрузки изображения профиля необходимо выполнить следующие действия:

  1. Возьмите имя пользователя профиля в качестве входных данных.
  2. Откройте Гугл Хром
  3. Посетите профиль Инстаграм
  4. Загрузите изображение профиля

Это служит алгоритмом постановки задачи.

Понимание и установка необходимых модулей и инструментов

В этом проекте используются следующие модули и инструменты 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:

  1. Проверьте версию используемого вами браузера, посетив Меню (3 точки) >Справка > О Google Chrome.

  2. Обратите внимание на версию браузера.

  3. Посетите страницу загрузок ChromeDriver — WebDriver для Chrome.
  4. Выберите вариант, соответствующий номеру вашей версии из текущих выпусков ChromeDriver.

  5. Выберите и загрузите файл в соответствии с вашей операционной системой.

  6. Извлеките загруженный файл и поместите его в ту же папку, что и ваша программа Python. Это будет полезно при настройке пути во время кодирования.

Как проверить код для автоматизации любого аспекта веб-страницы

Для любого процесса веб-автоматизации с использованием Selenium и Python важно иметь базовое понимание Интернета и его технологий. Первым шагом является знакомство с HTML, а затем понимание каскадных таблиц стилей (CSS). Здесь вы познакомитесь с концепцией идентификаторов и классов.

Идентификаторы и классы — это уникальные имена, присвоенные элементу или набору элементов (тегов) соответственно. Используя их, вы находите необходимый элемент и указываете программе Python нацелиться именно на него. Чтобы проверить код и найти изображение профиля:

  1. Откройте страницу аккаунта Instagram.
  2. Нажмите браузер Меню > Дополнительные инструменты > Инструменты разработчика или используйте сочетание клавиш Ctrl + Shift + I, чтобы активировать представление Инструменты разработчика.

  3. Нажмите и выберите инструмент Выбор элемента (значок курсора мыши) в левом углу окна и наведите его на любую часть веб-страницы, чтобы перейти к этому разделу кода.

  4. Важно отметить, что изображения профиля общедоступной и частной учетной записи устанавливаются по-разному. Наведите курсор на изображение профиля общедоступной учетной записи. Атрибут класса общедоступного профиля — _aa8j.

  5. Повторите вышеуказанный шаг для частного профиля. Атрибут класса — _aadp.

Вы можете использовать эту процедуру, чтобы понять любую веб-страницу и настроить любой элемент для автоматизации.

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

Выполните следующие действия, чтобы создать загрузчик.

  1. Импортируйте необходимые модули в среду Python.

    from selenium import webdriver
    import time
    import urllib.request
  2. Используя функцию ввода, получите имя пользователя профиля, изображение профиля которого необходимо загрузить, и сохраните его в переменной с именем username.

    #entering the username of the profile whose profile picture is to be downloaded 
    username=input("Enter the username of the profile: ")
  3. Инициализируйте веб-драйвер, создав его объект и передав путь к его файловой системе.

    #creating an object of chromedriver 
    cd='chromedriver.exe'
  4. Используйте функцию webdriver.Chrome, чтобы запустить браузер Google Chrome.

    #open google chrome browser 
    driver = webdriver.Chrome(cd)
  5. URL-адрес любой учетной записи Instagram имеет формат https://www.instagram.com/, за которым следует имя пользователя. Установите URL-адрес профиля следующим образом:

    #setting the url
    url='https://www.instagram.com/' 
    url_p=url+user_h
  6. Передайте полный URL-адрес профиля Instagram, который нужно посетить, в функцию get().

    #open the profile 
    driver.get(url_p)
  7. Установите дополнительную рекомендуемую задержку для полной загрузки веб-страницы.

    #delay for page content loading
    time.sleep(5)
  8. Используйте блок 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"]')
  9. Используя get_attribute(), получите атрибут src изображения. Это возвращает ссылку на изображение.

    #store the download link of image 
    img_link=image.get_attribute('src')
  10. Укажите путь и расширение загружаемого файла. Например, вы можете настроить загрузку изображения на диск D: вашей файловой системы в формате JPG как.

    #set path of downloaded file 
    path="D:\\"+username+".jpg"
  11. Загрузите изображение, передав ссылку на изображение профиля в качестве источника и путь к локальной системной папке в качестве места назначения функции urlretrieve().

    #downloading image to the required destination
    urllib.request.urlretrieve(img_link,path)
  12. Зайдите в папку и увидите, что изображение профиля загружено. При желании вы также можете отобразить путь, по которому было загружено изображение профиля.

    #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')

Приложения веб-автоматизации

Автоматизация не только помогает вам сэкономить время, деньги и усилия, но и гарантирует выполнение задач, предотвращая ошибки. Используйте этот метод, чтобы автоматизировать вход на различные веб-сайты, выполнять резервное копирование облачных серверов, планировать сообщения, поздравлять дни рождения в социальных сетях, создавать сообщения, публиковать твиты и многое другое.

Статьи по данной тематике: