Fotografia de profil este unul dintre elementele principale ale oricărui cont de social media, dar aplicațiile precum Instagram nu vă permit să o vizualizați sau să o descărcați. Acest proces poate fi realizat cu ușurință folosind un instrument de automatizare web, cum ar fi Selenium cu Python.
Învață să folosești acest duo puternic pentru a interacționa cu orice element al unei pagini web, automatizează-l și economisește timp neprețuit investind în sarcini productive. Și partea cea mai bună? Creați acest lucru fără să vă conectați sau să aveți un cont de Instagram.!
Procesul de construire a algoritmului
Construirea algoritmului se referă la procesul de identificare a problemei și de enumerare a pașilor pe care programul trebuie să îi automatizeze. Diferiții pași necesari pentru a descărca o fotografie de profil sunt:
- Luați numele de utilizator al unui profil ca intrare
- Deschide Google Chrome
- Vizitează profilul Instagram
- Descărcați poza de profil
Acesta servește ca algoritm al enunțului problemei.
Acest proiect folosește următoarele module și instrumente Python.
1. Modulul Urllib
Urllib este un modul Python folosit pentru a gestiona adrese URL de pe internet. Veți folosi acest modul pentru a descărca fotografia de profil a contului de la adresa URL sursă. Dacă Urllib nu este prezent în sistemul dvs., îl puteți instala folosind comanda pip install urllib.
2. Modulul de timp
Acest modul, deși nu este obligatoriu, poate duce la eșecul construcției dacă conexiunea la internet este lentă sau conținutul paginii web nu este încărcat în timpul interacțiunii programului Python cu pagină web. Funcția delay() ne ajută să punem o mică întârziere, astfel încât construcția să nu eșueze.
3. Modulul de seleniu
Unul dintre cele mai populare instrumente de automatizare a browserului open-source este Selenium. Este disponibil ca pachet Python care acceptă diverse browsere, cum ar fi Google Chrome, Microsoft Edge, Safari și Mozilla Firefox. Pentru a instala Selenium în mediul dvs. Python, deschideți Terminal si executapip install seleniu.
4. WebDriver
Un driver web este un instrument folosit de Selenium care stabilește o conexiune între program și orice site web. Diferite tipuri de drivere web sunt disponibile în funcție de browserul pe care doriți să îl automatizați. Pentru această versiune, veți folosi browserul Google Chrome. Pentru a instala driverul web pentru Chrome:
- Verificați versiunea browserului pe care îl utilizați vizitând Meniul (3 puncte) > Ajutor > Despre Google Chrome.
- Rețineți versiunea browserului.
- Vizitați pagina de descărcări a ChromeDriver - WebDriver pentru Chrome.
- Selectați opțiunea care se potrivește cu numărul dvs. de versiune din versiunile actuale ale ChromeDriver.
- Alegeți și descărcați fișierul în funcție de sistemul dvs. de operare.
- Extrageți fișierul descărcat și plasați-l în același folder cu programul dvs. Python. Acest lucru va fi util în setarea căii în timpul codificării.
Cum să inspectați codul pentru automatizarea oricărui aspect al unei pagini web
Pentru orice proces de automatizare web care utilizează Selenium și Python, este esențial să aveți o înțelegere de bază a web-ului și a tehnologiilor sale. Primul pas este să câștigi o introducere în HTML urmată de înțelegerea foilor de stil în cascadă (CSS). Aici vă veți familiariza cu conceptul de id-uri și clase.
Id-urile și clasele sunt nume unice date unui element sau, respectiv, unui set de elemente (etichete). Folosind acestea, localizați elementul necesar și instruiți programul Python să-l vizeze în mod specific. Pentru a inspecta codul și a localiza fotografia de profil:
- Deschideți pagina web a contului Instagram.
- Faceți clic pe browser Meniul > Mai multe unelte > Instrumente de dezvoltare sau utilizați comanda rapidă Ctrl + Shift + I pentru a activa Instrumente de dezvoltare vedere.
- Faceți clic și selectați Selector de elemente instrument (pictograma cursorului mouse-ului) în colțul din stânga ferestrei și plasați-l peste orice parte a paginii web pentru a sări la acea secțiune de cod.
- Este important să rețineți că imaginile de profil ale unui cont public și ale unui cont privat sunt setate diferit. Treceți cursorul peste fotografia de profil a unui cont public. Atributul de clasă pentru profilul public este _aa8j.
- Repetați pasul de mai sus pentru un profil privat. Atributul clasei este _aadp.
Puteți folosi această procedură pentru a înțelege orice pagină web și pentru a viza orice element pentru automatizare.
Cum să construiți aplicația de descărcare a fotografiilor de profil Instagram
Urmați acești pași pentru a crea programul de descărcare.
- Importați modulele necesare în mediul Python.
din seleniu import webdriver
import timp
import urllib.cerere - Folosind funcția de introducere, obțineți numele de utilizator al profilului a cărui imagine de profil urmează să fie descărcată și stocați-l într-o variabilă numită nume de utilizator.
#introducerea numelui de utilizator al profilului a cărui poză de profil urmează să fie descărcată
username=input("Introduceți numele de utilizator al profilului: ") - Inițializați driverul web creând un obiect al acestuia și trecând calea sistemului de fișiere.
#crearea unui obiect de chromedriver
cd='chromedriver.exe' - Folosește webdriver. Crom funcția de lansare a browserului Google Chrome.
#deschide browserul google chrome
driver = webdriver. Crom(CD) - Adresa URL a oricărui cont Instagram are formatul https://www.instagram.com/ urmat de numele de utilizator. Setați adresa URL a profilului ca,
#setarea adresei URL
url='https://www.instagram.com/'
url_p=url+user_h - Treceți adresa URL completă a profilului Instagram de vizitat la funcția get().
#deschide profilul
conducător auto.obține(url_p) - Setați o întârziere opțională recomandată pentru ca pagina web să se încarce complet.
#delay pentru încărcarea conținutului paginii
timp.dormi(5) - Utilizați blocul try-except pentru a localiza și a determina dacă fotografia de profil aparține unui profil public. Acest lucru se face prin utilizarea atributului class în expresia XPath. În caz de eșec, utilizați blocul except pentru a căuta fotografia de profil a unui cont privat.
încerca:
#dacă profilul este public, căutați imaginea cu clasa _aa8j
imagine=driver.find_element_by_xpath('//img[@class="_aa8j"]')
cu exceptia:
#dacă profilul este privat, căutați imaginea cu clasa _aadp
imagine=driver.find_element_by_xpath('//img[@class="_aadp"]') - Folosind get_attribute(), obțineți atributul src al imaginii. Aceasta returnează linkul imaginii.
#stocare linkul de descărcare a imaginii
img_link=image.get_attribute('src') - Setați calea și extensia fișierului descărcat. De exemplu, puteți seta imaginea să fie descărcată pe unitatea D: a sistemului dvs. de fișiere în format JPG ca.
#set calea fișierului descărcat
cale="D:\\"+nume de utilizator+".jpg" - Descărcați imaginea trecând link-ul imaginii de profil ca sursă și calea folderului de sistem local ca destinație la funcția urlretrieve().
#descărcarea imaginii la destinația dorită
urllib.cerere.urlretrieve(img_link,cale) - Vizitați folderul și vedeți că fotografia de profil a fost descărcată. Opțional, puteți afișa și calea în care a fost descărcată fotografia de profil.
#afișarea căii imaginii de profil descărcate
imprimare("Poza de profil a fost descărcată de la: "+cale)
Cod sursă final pentru Descărcătorul de fotografii de profil Instagram folosind Python
Adunând totul împreună, obțineți:
#importarea modulelor necesare
din seleniu import webdriver
import timp
import urllib.cerere
#introducerea numelui de utilizator al profilului a cărui poză de profil urmează să fie descărcată
user_h=input("Introduceți numele de utilizator al profilului: ")
#setarea adresei URL
url='https://www.instagram.com/'
url_p=url+user_h
#crearea obiectului chromedriver
cd='chromedriver.exe'
#deschide google
driver = webdriver. Crom(CD)
#deschide profilul
conducător auto.obține(url_p)
#delay pentru încărcarea conținutului paginii
timp.dormi(5)
încerca:
#dacă profilul este public, căutați imaginea cu clasa _aa8j
imagine=driver.find_element_by_xpath('//img[@class="_aa8j"]')
cu exceptia:
#dacă profilul este privat, căutați imaginea cu clasa _aadp
imagine=driver.find_element_by_xpath('//img[@class="_aadp"]')
#stocare linkul de descărcare a imaginii
img_link=image.get_attribute('src')
Aplicații de automatizare web
Automatizarea nu numai că vă ajută să economisiți timp, bani și efort, dar garantează și finalizarea sarcinilor, prevenind în același timp erorile. Utilizați această tehnică pentru a automatiza autentificarea diferitelor site-uri web, pentru a efectua backup la serverele cloud, pentru a programa mesaje, pentru a vă urări zile de naștere pe platformele de socializare, pentru a crea postări, pentru a publica tweet-uri și multe altele.