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. Proces ten można łatwo osiągnąć za pomocą narzędzia do automatyzacji sieci, takiego jak Selenium z Pythonem.

Naucz się używać tego duetu mocy do interakcji z dowolnym elementem strony internetowej, zautomatyzuj ją i zaoszczędź bezcenny czas, inwestując w produktywne zadania. A najlepsza część? Zbuduj to nawet bez logowania lub posiadania 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. Jako dane wejściowe weź nazwę użytkownika profilu
  2. Otwórz Google Chrome
  3. Odwiedź profil na Instagramie
  4. Pobierz zdjęcie profilowe

Służy jako algorytm opisu problemu.

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, aby pobrać zdjęcie profilowe konta z jego źródłowego adresu URL. Jeśli Urllib nie jest obecny w twoim systemie, możesz go zainstalować za pomocą polecenia

instagram viewer
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 jest ładowana podczas interakcji programu Python z Strona internetowa. Funkcja delay() pomaga nam wprowadzić małe opóźnienie, aby kompilacja nie zawodziła.

3. Moduł selenu

Jednym z najpopularniejszych narzędzi do automatyzacji przeglądarek o otwartym kodzie źródłowym 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 swoim środowisku Python, otwórz swój Terminal i wykonajpip zainstaluj selen.

4. Sterownik sieciowy

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

  1. Sprawdź wersję używanej przeglądarki, odwiedzając stronę Menu (3 kropki) >Pomoc > O google chrome.
  2. Zwróć uwagę na wersję przeglądarki.
  3. Odwiedź stronę pobierania ChromeDriver — WebDriver dla Chrome.
  4. Wybierz opcję, która odpowiada numerowi Twojej wersji z aktualnych wydań ChromeDriver.
  5. Wybierz i pobierz plik zgodnie z systemem operacyjnym.
  6. Wyodrębnij pobrany plik i umieść go w tym samym folderze, co twój program w Pythonie. Będzie to pomocne przy ustalaniu ścieżki podczas kodowania.

Jak sprawdzić kod w celu zautomatyzowania dowolnego aspektu strony internetowej

W przypadku każdego procesu automatyzacji sieci przy użyciu Selenium i Pythona niezbędne jest podstawowe zrozumienie sieci i jej technologii. Pierwszym krokiem jest zyskanie wprowadzenie do HTML śledzony przez zrozumienie Kaskadowych Arkuszy Stylów (CSS). Tutaj zapoznasz się z pojęciem identyfikatorów i klas.

Identyfikatory i klasy to unikalne nazwy nadane odpowiednio elementowi lub zbiorowi elementów (znaczników). Korzystając z nich, zlokalizujesz wymagany element i poinstruujesz program Pythona, aby celował w niego konkretnie. Aby sprawdzić kod i znaleźć zdjęcie profilowe:

  1. Otwórz stronę internetową konta na Instagramie.
  2. Kliknij przeglądarkę Menu > Więcej narzędzi > Narzędzia deweloperskie lub użyj skrótu Ctrl + Shift + I aby aktywować Narzędzia deweloperskie pogląd.
  3. Kliknij i wybierz Selektor elementów narzędzie (ikona kursora myszy) w lewym rogu okna i najedź nim na dowolną część strony, aby przejść do tej sekcji kodu.
  4. Należy pamiętać, że zdjęcia profilowe konta publicznego i konta prywatnego są ustawione inaczej. Najedź kursorem na zdjęcie profilowe konta publicznego. Atrybut klasy profilu publicznego to _aa8j.
  5. Powtórz powyższy krok dla profilu prywatnego. Atrybut klasy to _aadp.

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 czynności, aby utworzyć narzędzie do pobierania.

  1. Zaimportuj wymagane moduły do ​​środowiska Python.
    z selen import webdriver
    import czas
    import urllib.żądanie
  2. Korzystając z funkcji input, uzyskaj nazwę użytkownika profilu, którego zdjęcie profilowe ma zostać pobrane i zapisz je w zmiennej nazwanej username.
    #wprowadzanie nazwy użytkownika profilu, którego zdjęcie profilowe ma zostać pobrane 
    nazwa użytkownika=wejście("Wpisz nazwę użytkownika profilu: ")
  3. Zainicjuj sterownik sieciowy, tworząc jego obiekt i przekazując jego ścieżkę systemu plików.
    #tworzenie obiektu chromedrivera 
    cd='chromedriver.exe'
  4. Użyj sterownik sieciowy. Chrom funkcja uruchamiania przeglądarki Google Chrome.
    #otwórz przeglądarkę Google Chrome 
    kierowca = sterownik sieciowy. Chrom(płyta CD)
  5. Adres URL dowolnego konta na Instagramie ma format https://www.instagram.com/ po którym następuje nazwa użytkownika. Ustaw adres URL profilu jako,
    #ustawianie adresu URL
    url='https://www.instagram.com/'
    url_p=url+user_h
  6. Przekaż pełny adres URL profilu na Instagramie, który chcesz odwiedzić, do funkcji get().
    #otwórz profil 
    kierowca.Dostawać(url_p)
  7. Ustaw opcjonalne zalecane opóźnienie pełnego załadowania strony internetowej.
    #opóźnienie ładowania zawartości strony
    czas.spać(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 z wyjątkiem, aby wyszukać zdjęcie profilowe konta prywatnego.
    próbować:
    #jeśli profil jest publiczny, wyszukaj obraz z klasą _aa8j
    image=sterownik.znajdź_element_w_xścieżce('//img[@class="_aa8j"]')
    oprócz:
    #jeśli profil jest prywatny, wyszukaj obraz z klasą _aadp
    image=sterownik.znajdź_element_w_xścieżce('//img[@class="_aadp"]')
  9. Używając get_attribute(), uzyskaj atrybut src obrazu. Zwraca link do obrazu.
    #przechowuj link do pobrania obrazu 
    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.
    #ustaw ścieżkę pobranego pliku 
    ścieżka="D:\\"+nazwa użytkownika+".jpg"
  11. Pobierz obraz, przekazując link do zdjęcia profilowego jako źródło i ścieżkę lokalnego folderu systemowego jako miejsce docelowe funkcji urlretrieve().
    #pobieranie obrazu do wymaganego miejsca docelowego
    urllib.żądanie.urlretrive(img_link,ścieżka)
  12. Odwiedź folder i zobacz, że zdjęcie profilowe zostało pobrane. Opcjonalnie możesz również wyświetlić ścieżkę, do której zostało pobrane zdjęcie profilowe.
    #wyświetlanie ścieżki pobranego zdjęcia profilowego 
    wydrukować("Zdjęcie profilowe zostało pobrane pod adresem: "+ścieżka)

Ostateczny kod źródłowy narzędzia do pobierania zdjęć profilowych na Instagramie za pomocą Pythona

Łącząc to wszystko razem, otrzymujesz:

#importowanie wymaganych modułów
z selen import webdriver
import czas
import urllib.żądanie
#wprowadzanie nazwy użytkownika profilu, którego zdjęcie profilowe ma zostać pobrane
user_h=wejście("Wpisz nazwę użytkownika profilu: ")
#ustawianie adresu URL
url='https://www.instagram.com/'
url_p=url+user_h
#tworzenie obiektu chromedrivera
cd='chromedriver.exe'
#otwórz google
kierowca = sterownik sieciowy. Chrom(płyta CD)
#otwórz profil
kierowca.Dostawać(url_p)
#opóźnienie ładowania zawartości strony
czas.spać(5)
próbować:
#jeśli profil jest publiczny, wyszukaj obraz z klasą _aa8j
image=sterownik.znajdź_element_w_xścieżce('//img[@class="_aa8j"]')
oprócz:
#jeśli profil jest prywatny, wyszukaj obraz z klasą _aadp
image=sterownik.znajdź_element_w_xścieżce('//img[@class="_aadp"]')

#przechowuj link do pobrania obrazu
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ń, jednocześnie zapobiegając błędom. Użyj tej techniki, aby zautomatyzować logowanie do różnych stron internetowych, wykonywać kopie zapasowe serwerów w chmurze, planować wiadomości, życzyć urodzin na platformach społecznościowych, tworzyć posty, publikować tweety i wiele innych.