Jak pobrac zdjecie profilowe na Instagramie za pomoca Pythona

Wie man mit Python ein Profilbild auf Instagram herunterlädt

Zdjęcie profilowe jest jednym z głównych elementów każdego konta w mediach społecznościowych, ale aplikacje takie jak Instagram nie pozwalają na jego przeglądanie ani pobieranie. Ten proces można łatwo osiągnąć za pomocą narzędzia do automatyzacji sieci, takiego jak Selenium z Pythonem.


Naucz się używać tego potężnego duetu do interakcji z dowolnym elementem strony internetowej, zautomatyzuj go i zaoszczędź sobie nieoceniony czas na inwestowanie w produktywne zadania. A najlepsza część? Zbuduj to, nawet nie logując się ani nie mając konta na Instagramie.!

Proces budowania algorytmu

Budowanie algorytmu odnosi się do procesu identyfikacji problemu i wyszczególnienia kroków, które program musi zautomatyzować. Różne kroki wymagane do pobrania zdjęcia profilowego to:

  1. Weź nazwę użytkownika profilu jako dane wejściowe
  2. Otwórz Google Chrome
  3. Odwiedź profil na Instagramie
  4. Pobierz zdjęcie profilowe

Służy to jako algorytm sformułowania problemu.

Zrozumienie i instalacja wymaganych modułów i narzędzi

Ten projekt wykorzystuje następujące moduły i narzędzia Pythona.

1. Moduł Urllib

Urllib to moduł Pythona używany do obsługi adresów URL z Internetu. Zamierzasz użyć tego modułu do pobrania zdjęcia profilowego konta ze źródłowego adresu URL. Jeśli Urllib nie jest obecny w twoim systemie, możesz go zainstalować za pomocą polecenia pip zainstaluj urllib.

2. Moduł czasu

Ten moduł, choć nie jest obowiązkowy, może spowodować niepowodzenie kompilacji, jeśli połączenie internetowe jest wolne lub zawartość strony internetowej nie zostanie załadowana w czasie interakcji programu Python ze stroną internetową. Funkcja delay() pomaga nam wprowadzić niewielkie opóźnienie, aby kompilacja nie zakończyła się niepowodzeniem.

3. Moduł selenowy

Jednym z najpopularniejszych narzędzi do automatyzacji przeglądarek typu open source jest Selenium. Jest dostępny jako pakiet Pythona obsługujący różne przeglądarki, takie jak Google Chrome, Microsoft Edge, Safari i Mozilla Firefox. Aby zainstalować Selenium w środowisku Pythona, otwórz swój Terminal i wykonać pip zainstaluj selen.

4. WebDriver

Sterownik sieciowy to narzędzie używane przez Selenium, które nawiązuje połączenie między programem a dowolną stroną internetową. Różne rodzaje sterowników internetowych są dostępne w zależności od przeglądarki, którą chcesz zautomatyzować. W tej kompilacji będziesz używać przeglądarki Google Chrome. Aby zainstalować sterownik sieciowy dla Chrome:

  1. Sprawdź wersję używanej przeglądarki, odwiedzając stronę Menü (3 kropki) >Pomoc > O google chrome.
    O stronie Google Chrome

  2. Zwróć uwagę na wersję przeglądarki.
    Wersja przeglądarki Chrome

  3. Odwiedź stronę pobierania ChromeDriver – WebDriver dla Chrome.
  4. Wybierz opcję odpowiadającą Twojemu numerowi wersji z aktualnych wersji ChromeDriver.
    Sterownik sieciowy Chrome

  5. Wybierz i pobierz plik zgodnie z systemem operacyjnym.
    Pobierz sterownik sieciowy Chrome dla systemu Windows

  6. Wyodrębnij pobrany plik i umieść go w tym samym folderze, co program w języku Python. Będzie to pomocne przy ustawianiu ścieżki podczas kodowania.

Jak sprawdzić kod pod kątem automatyzacji dowolnego aspektu strony internetowej

W przypadku każdego procesu automatyzacji sieci przy użyciu Selenium i Python niezbędna jest podstawowa znajomość sieci i jej technologii. Pierwszym krokiem jest zapoznanie się z HTML, a następnie zrozumienie kaskadowych arkuszy stylów (CSS). W tym miejscu zapoznasz się z koncepcją identyfikatorów i klas.

Identyfikatory i klasy to unikalne nazwy nadawane odpowiednio elementowi lub zestawowi elementów (znaczników). Korzystając z nich, lokalizujesz wymagany element i instruujesz program Pythona, aby celował w niego konkretnie. Aby sprawdzić kod i zlokalizować zdjęcie profilowe:

  1. Otwórz stronę internetową konta na Instagramie.
  2. Klicken Sie auf przeglądarka Menü > Więcej narzędzi > Narzędzia deweloperskie lub użyj skrótu Ctrl + Shift + I aby aktywować Narzędzia deweloperskie pogląd.
    Narzędzia programistyczne Chrome

  3. Kliknij i wybierz Selektor elementów (ikona kursora myszy) w lewym rogu okna i najedź nim na dowolną część strony, aby przejść do tej sekcji kodu.
    Narzędzia deweloperskie Selektor elementów

  4. Należy zauważyć, że zdjęcia profilowe konta publicznego i konta prywatnego są ustawione inaczej. Najedź kursorem na zdjęcie profilowe konta publicznego. Atrybut class dla profilu publicznego to _aa8j.
    Klasa obrazu profilu publicznego

  5. Powtórz powyższy krok dla profilu prywatnego. Atrybut klasy to _adp.
    Prywatna klasa obrazu profilu

Możesz użyć tej procedury, aby zrozumieć dowolną stronę internetową i skierować dowolny element do automatyzacji.

Jak zbudować narzędzie do pobierania zdjęć profilowych na Instagramie

Wykonaj poniższe kroki, aby utworzyć program do pobierania.

  1. Zaimportuj wymagane moduły do ​​środowiska Python.
     from selenium import webdriver
    import time
    import urllib.request
  2. Korzystając z funkcji wprowadzania, uzyskaj nazwę użytkownika profilu, którego zdjęcie profilowe ma zostać pobrane i zapisz ją w zmiennej o nazwie nazwa użytkownika.
     #entering the username of the profile whose profile picture is to be downloaded 
    username=input("Enter the username of the profile: ")
  3. Zainicjuj sterownik WWW, tworząc jego obiekt i przekazując jego ścieżkę do systemu plików.
     #creating an object of chromedriver 
    cd='chromedriver.exe'
  4. Użyj webdriver.Chrome funkcję uruchamiania przeglądarki Google Chrome.
     #open google chrome browser 
    driver = webdriver.Chrome(cd)
  5. Adres URL dowolnego konta na Instagramie ma format następnie nazwa użytkownika. Ustaw adres URL profilu jako,
     #setting the url
    url=''
    url_p=url+user_h
  6. Przekaż pełny adres URL profilu na Instagramie, który ma zostać odwiedzony, do funkcji get().
     #open the profile 
    driver.get(url_p)
  7. Ustaw opcjonalne zalecane opóźnienie pełnego załadowania strony internetowej.
     #delay for page content loading
    time.sleep(5)
  8. Użyj bloku try-except, aby zlokalizować i określić, czy zdjęcie profilowe należy do profilu publicznego. Odbywa się to za pomocą atrybutu class w wyrażeniu XPath. W przypadku niepowodzenia użyj bloku wyjątków, aby wyszukać zdjęcie profilowe konta prywatnego.
     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. Używając get_attribute(), uzyskaj atrybut src obrazu. Spowoduje to zwrócenie linku do obrazu.
     #store the download link of image 
    img_link=image.get_attribute('src')
  10. Ustaw ścieżkę i rozszerzenie pobranego pliku. Na przykład możesz ustawić pobieranie obrazu na dysk D: systemu plików w formacie JPG jako.
     #set path of downloaded file 
    path="D:\\"+username+".jpg"
  11. Pobierz obraz, przekazując link do zdjęcia profilowego jako źródło i ścieżkę do lokalnego folderu systemowego jako miejsce docelowe do funkcji urlretrieve().
     #downloading image to the required destination
    urllib.request.urlretrieve(img_link,path)
  12. Odwiedź folder i sprawdź, czy zdjęcie profilowe zostało pobrane. Opcjonalnie możesz również wyświetlić ścieżkę, do której pobrano zdjęcie profilowe.
     #displaying the path of the profile pic downloaded 
    print("The profile pic has been downloaded at: "+path)

Ostateczny kod źródłowy narzędzia do pobierania zdjęć profilowych na Instagramie przy użyciu języka Python

Łącząc to wszystko razem, otrzymujesz:

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

Zastosowania automatyzacji sieci

Automatyzacja nie tylko pomaga zaoszczędzić czas, pieniądze i wysiłek, ale także gwarantuje wykonanie zadań, zapobiegając błędom. Skorzystaj z tej techniki, aby zautomatyzować logowanie do różnych stron internetowych, wykonać kopię zapasową serwerów w chmurze, zaplanować wiadomości, złożyć życzenia urodzinowe na platformach społecznościowych, tworzyć posty, publikować tweety i wiele więcej.

Ähnliche Beiträge