Jak pobrać zdjęcie profilowe na Instagramie za pomocą Pythona
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:
- Weź nazwę użytkownika profilu jako dane wejściowe
- Otwórz Google Chrome
- Odwiedź profil na Instagramie
- 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:
- Sprawdź wersję używanej przeglądarki, odwiedzając stronę Menu (3 kropki) >Pomoc > O google chrome.
- Zwróć uwagę na wersję przeglądarki.
- Odwiedź stronę pobierania ChromeDriver – WebDriver dla Chrome.
- Wybierz opcję odpowiadającą Twojemu numerowi wersji z aktualnych wersji ChromeDriver.
- Wybierz i pobierz plik zgodnie z systemem operacyjnym.
- 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:
- Otwórz stronę internetową konta na Instagramie.
- Kliknij na przeglądarka Menu > Więcej narzędzi > Narzędzia deweloperskie lub użyj skrótu Ctrl + Shift + I aby aktywować Narzędzia deweloperskie pogląd.
- 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.
- 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.
- Powtórz powyższy krok dla profilu prywatnego. Atrybut klasy to _adp.
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.
- Zaimportuj wymagane moduły do środowiska Python.
from selenium import webdriver
import time
import urllib.request - 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: ") - 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' - Użyj webdriver.Chrome funkcję uruchamiania przeglądarki Google Chrome.
#open google chrome browser
driver = webdriver.Chrome(cd) - 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 - Przekaż pełny adres URL profilu na Instagramie, który ma zostać odwiedzony, do funkcji get().
#open the profile
driver.get(url_p) - Ustaw opcjonalne zalecane opóźnienie pełnego załadowania strony internetowej.
#delay for page content loading
time.sleep(5) - 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")') - 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') - 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" - 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) - 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.