Profilna slika jedan je od najvažnijih elemenata bilo kojeg računa na društvenim mrežama, ali aplikacije poput Instagrama ne dopuštaju vam da je vidite ili preuzmete. Ovaj se proces može lako postići pomoću alata za web automatizaciju kao što je Selenium s Pythonom.

Naučite koristiti ovaj moćni duo za interakciju s bilo kojim elementom web stranice, automatizirajte ga i uštedite neprocjenjivo vrijeme ulaganjem u produktivne zadatke. A najbolji dio? Izgradite ovo čak i bez da se prijavite ili imate Instagram račun.!

Proces izgradnje algoritma

Izrada algoritma odnosi se na proces identificiranja problema i popisa koraka koje program treba automatizirati. Različiti koraci potrebni za preuzimanje profilne slike su:

  1. Uzmite korisničko ime profila kao unos
  2. Otvorite Google Chrome
  3. Posjetite Instagram profil
  4. Preuzmite profilnu sliku

Ovo služi kao algoritam izjave problema.

Ovaj projekt koristi sljedeće Python module i alate.

1. Urllib modul

Urllib je Python modul koji se koristi za rukovanje URL-ovima s interneta. Koristit ćete ovaj modul za preuzimanje profilne slike računa s izvornog URL-a. Ako Urllib nije prisutan u vašem sustavu, možete ga instalirati pomoću naredbe

instagram viewer
pip instaliraj urllib.

2. Vremenski modul

Ovaj modul, iako nije obavezan, može uzrokovati neuspjeh izgradnje ako je vaša internetska veza spora ili sadržaj web stranice se ne učitava tijekom interakcije Python programa s web stranica. Funkcija delay() nam pomaže da stavimo malu odgodu kako izgradnja ne bi propala.

3. Selenski modul

Jedan od najpopularnijih alata za automatizaciju preglednika otvorenog koda je Selenium. Dostupan je kao Python paket koji podržava različite preglednike kao što su Google Chrome, Microsoft Edge, Safari i Mozilla Firefox. Da biste instalirali Selenium u svoje Python okruženje, otvorite svoj Terminal i izvršitipip instalirati selenium.

4. WebDriver

Web upravljački program je alat koji koristi Selenium koji uspostavlja vezu između programa i bilo kojeg web mjesta. Različite vrste web upravljačkih programa dostupni su ovisno o pregledniku koji želite automatizirati. Za ovu verziju koristit ćete preglednik Google Chrome. Da biste instalirali web upravljački program za Chrome:

  1. Provjerite verziju preglednika koji koristite tako da posjetite izbornik (3 točke) > Pomoć > O pregledniku Google Chrome.
  2. Obratite pažnju na verziju preglednika.
  3. Posjetite stranicu za preuzimanja ChromeDriver - WebDriver za Chrome.
  4. Odaberite opciju koja odgovara vašem broju verzije iz trenutačnih izdanja ChromeDrivera.
  5. Odaberite i preuzmite datoteku u skladu s vašim operativnim sustavom.
  6. Ekstrahirajte preuzetu datoteku i smjestite je u istu mapu u kojoj je vaš Python program. Ovo će biti od pomoći pri postavljanju putanje tijekom kodiranja.

Kako provjeriti kod za automatizaciju bilo kojeg aspekta web stranice

Za svaki proces web automatizacije koji koristi Selenium i Python, bitno je imati osnovno razumijevanje weba i njegovih tehnologija. Prvi korak je dobiti uvod u HTML slijedi razumijevanje Cascading Style Sheets (CSS). Ovdje ćete se upoznati s konceptom ID-ova i klasa.

ID-ovi i klase su jedinstvena imena koja se daju elementu ili skupu elemenata (tagova). Pomoću njih locirate traženi element i dajete upute programu Python da ga posebno cilja. Da provjerite kod i pronađete profilnu sliku:

  1. Otvorite web stranicu Instagram računa.
  2. Kliknite na preglednik izbornik > Više alata > Razvojni alati ili koristite prečac Ctrl + Shift + I za aktiviranje Razvojni alati pogled.
  3. Kliknite i odaberite Birač elemenata alat (ikona pokazivača miša) u lijevom kutu prozora i zadržite pokazivač iznad bilo kojeg dijela web-stranice da biste skočili na taj dio koda.
  4. Važno je napomenuti da su profilne slike javnog računa i privatnog računa različito postavljene. Zadržite pokazivač iznad profilne slike javnog računa. Atribut klase za javni profil je _aa8j.
  5. Ponovite gornji korak za privatni profil. Atribut klase je _aadp.

Možete koristiti ovaj postupak za razumijevanje bilo koje web stranice i ciljanje bilo kojeg elementa za automatizaciju.

Kako izgraditi program za preuzimanje slika profila na Instagramu

Slijedite ove korake za izradu programa za preuzimanje.

  1. Uvezite potrebne module u Python okruženje.
    iz selen uvoz webdriver
    uvoz vrijeme
    uvoz urllib.zahtjev
  2. Pomoću funkcije unosa dobijte korisničko ime profila čiju profilnu sliku želite preuzeti i pohranite ga u varijablu pod nazivom korisničko ime.
    #unos korisničkog imena profila čiju profilnu sliku želite preuzeti 
    korisničko ime=unos("Unesite korisničko ime profila: ")
  3. Inicijalizirajte web upravljački program stvaranjem njegovog objekta i prosljeđivanjem putanje njegovog datotečnog sustava.
    #stvaranje objekta chromedrivera 
    cd='chromedriver.exe'
  4. Koristiti webdriver. Krom funkciju za pokretanje preglednika Google Chrome.
    #otvorite preglednik google chrome 
    vozač = webdriver. Krom(CD)
  5. URL bilo kojeg Instagram računa je formata https://www.instagram.com/ nakon čega slijedi korisničko ime. Postavite URL profila kao,
    #postavljanje url-a
    url='https://www.instagram.com/'
    url_p=url+korisnik_h
  6. Proslijedite potpuni URL Instagram profila koji želite posjetiti funkciji get().
    #otvori profil 
    vozač.dobiti(url_p)
  7. Postavite izbornu preporučenu odgodu za potpuno učitavanje web stranice.
    #odgoda za učitavanje sadržaja stranice
    vrijeme.spavati(5)
  8. Upotrijebite blok pokušaj-osim kako biste locirali i utvrdili pripada li profilna slika javnom profilu. To se radi pomoću atributa klase u izrazu XPath. U slučaju neuspjeha, upotrijebite blok osim za pretraživanje profilne slike privatnog računa.
    probati:
    #ako je profil javan, traži sliku s klasom _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    osim:
    #ako je profil privatan, potražite sliku s klasom _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Koristeći get_attribute(), dobijete src atribut slike. Ovo vraća vezu slike.
    #store link za preuzimanje slike 
    img_link=image.get_attribute('src')
  10. Postavite put i ekstenziju preuzete datoteke. Na primjer, možete postaviti da se slika preuzme na D: pogon vašeg datotečnog sustava u JPG formatu kao.
    #postavi putanju preuzete datoteke 
    put="D:\\"+korisničko ime+".jpg"
  11. Preuzmite sliku prosljeđivanjem veze profilne slike kao izvora i putanje mape lokalnog sustava kao odredišta funkciji urlretrieve().
    #preuzimanje slike na traženo odredište
    urllib.zahtjev.urlretrieve(img_link,staza)
  12. Posjetite mapu i vidite da je profilna slika preuzeta. Po želji, također možete prikazati put na koji je preuzeta profilna slika.
    #displaying putanja preuzete profilne slike 
    ispis("Profilna slika je preuzeta na: "+put)

Konačni izvorni kod za Instagram Profile Pic Downloader pomoću Pythona

Kada sve to spojite, dobivate:

#uvoz potrebnih modula
iz selen uvoz webdriver
uvoz vrijeme
uvoz urllib.zahtjev
#unos korisničkog imena profila čiju profilnu sliku želite preuzeti
korisnik_h=unos("Unesite korisničko ime profila: ")
#postavljanje url-a
url='https://www.instagram.com/'
url_p=url+korisnik_h
#stvaranje objekta chromedrivera
cd='chromedriver.exe'
#otvori google
vozač = webdriver. Krom(CD)
#otvori profil
vozač.dobiti(url_p)
#odgoda za učitavanje sadržaja stranice
vrijeme.spavati(5)
probati:
#ako je profil javan, traži sliku s klasom _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
osim:
#ako je profil privatan, potražite sliku s klasom _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#store link za preuzimanje slike
img_link=image.get_attribute('src')

Primjene web automatizacije

Automatizacija ne samo da vam pomaže uštedjeti vrijeme, novac i trud, već također jamči dovršetak zadataka dok sprječava pogreške. Upotrijebite ovu tehniku ​​za automatizaciju prijave na različite web stranice, izvođenje sigurnosnih kopija poslužitelja u oblaku, zakazivanje poruka, čestitanje rođendana na platformama društvenih medija, stvaranje postova, objavljivanje tweetova i još mnogo toga.