Profilna slika je eden glavnih elementov katerega koli računa v družabnem omrežju, vendar aplikacije, kot je Instagram, ne dovoljujejo ogleda ali prenosa. Ta postopek je mogoče enostavno doseči z orodjem za spletno avtomatizacijo, kot je Selenium s Pythonom.

Naučite se uporabljati ta zmogljivi duo za interakcijo s katerim koli elementom spletne strani, jo avtomatizirajte in si prihranite neprecenljiv čas pri vlaganju v produktivna opravila. In najboljši del? Zgradite to, ne da bi se sploh prijavili ali imeli račun Instagram!

Postopek izdelave algoritma

Gradnja algoritma se nanaša na postopek prepoznavanja težave in naštevanja korakov, ki jih mora program avtomatizirati. Za prenos slike profila so potrebni različni koraki:

  1. Kot vhod vzemite uporabniško ime profila
  2. Odprite Google Chrome
  3. Obiščite Instagram profil
  4. Prenesite sliko profila

To služi kot algoritem izjave o problemu.

Ta projekt uporablja naslednje module in orodja Python.

1. Modul Urllib

Urllib je modul Python, ki se uporablja za obdelavo URL-jev iz interneta. Ta modul boste uporabili za prenos slike profila računa z izvornega URL-ja. Če Urllib ni prisoten v vašem sistemu, ga lahko namestite z ukazom

instagram viewer
pip namestite urllib.

2. Časovni modul

Čeprav ta modul ni obvezen, lahko povzroči neuspeh gradnje, če je vaša internetna povezava počasna ali se vsebina spletne strani ne naloži v času interakcije programa Python z Spletna stran. Funkcija delay() nam pomaga, da postavimo majhno zakasnitev, da gradnja ne spodleti.

3. Selenski modul

Eno najbolj priljubljenih odprtokodnih orodij za avtomatizacijo brskalnika je Selenium. Na voljo je kot paket Python, ki podpira različne brskalnike, kot so Google Chrome, Microsoft Edge, Safari in Mozilla Firefox. Če želite namestiti Selenium v ​​svoje okolje Python, odprite svoj Terminal in izvršitipip namestite selen.

4. WebDriver

Spletni gonilnik je orodje, ki ga uporablja Selenium in ki vzpostavi povezavo med programom in katero koli spletno stranjo. Različne vrste spletnih gonilnikov so na voljo glede na brskalnik, ki ga želite avtomatizirati. Za to zgradbo boste uporabljali brskalnik Google Chrome. Če želite namestiti spletni gonilnik za Chrome:

  1. Preverite različico brskalnika, ki ga uporabljate, tako da obiščete meni (3 pike) >Pomoč > O brskalniku Google Chrome.
  2. Upoštevajte različico brskalnika.
  3. Obiščite stran za prenose ChromeDriver - spletni gonilnik za Chrome.
  4. Izberite možnost, ki ustreza vaši številki različice iz trenutnih izdaj ChromeDriverja.
  5. Izberite in prenesite datoteko glede na vaš operacijski sistem.
  6. Ekstrahirajte preneseno datoteko in jo postavite v isto mapo kot vaš program Python. To bo v pomoč pri nastavljanju poti med kodiranjem.

Kako pregledati kodo za avtomatizacijo katerega koli vidika spletne strani

Za vsak proces spletne avtomatizacije, ki uporablja Selenium in Python, je bistveno osnovno razumevanje spleta in njegovih tehnologij. Prvi korak je pridobivanje uvod v HTML sledi razumevanje Cascading Style Sheets (CSS). Tukaj se boste seznanili s konceptom ID-jev in razredov.

ID-ji in razredi so edinstvena imena, dodeljena elementu ali nizu elementov (oznak). Z njihovo uporabo poiščete zahtevani element in ukažete programu Python, naj ga cilja posebej. Če želite pregledati kodo in poiskati sliko profila:

  1. Odprite spletno stran računa Instagram.
  2. Kliknite na brskalnik meni > Več orodij > Orodja za razvijalce ali uporabite bližnjico Ctrl + Shift + I da aktivirate Orodja za razvijalce pogled.
  3. Kliknite in izberite Izbirnik elementov orodje (ikona kazalca miške) v levem kotu okna in ga premaknite nad kateri koli del spletne strani, da skočite na ta del kode.
  4. Pomembno je vedeti, da so profilne slike javnega računa in zasebnega računa nastavljene drugače. Premaknite kazalec nad profilno sliko javnega računa. Atribut razreda za javni profil je _aa8j.
  5. Ponovite zgornji korak za zasebni profil. Atribut razreda je _aadp.

S tem postopkom lahko razumete katero koli spletno stran in ciljate na kateri koli element za avtomatizacijo.

Kako zgraditi program za nalaganje slik profila Instagram

Sledite tem korakom, da ustvarite program za prenos.

  1. Uvozite zahtevane module v okolje Python.
    od selen uvoz spletni gonilnik
    uvoz čas
    uvoz urllib.request
  2. S funkcijo vnosa pridobite uporabniško ime profila, katerega profilno sliko želite prenesti, in ga shranite v spremenljivko z imenom uporabniško ime.
    #vnos uporabniškega imena profila, katerega sliko profila želite prenesti 
    uporabniško ime=vnos("Vnesite uporabniško ime profila: ")
  3. Inicializirajte spletni gonilnik tako, da iz njega ustvarite predmet in posredujete pot njegovega datotečnega sistema.
    #ustvarjanje predmeta chromedriverja 
    cd='chromedriver.exe'
  4. Uporabi spletni gonilnik. Chrome funkcijo za zagon brskalnika Google Chrome.
    #odpri brskalnik google chrome 
    voznik = spletni gonilnik. Chrome(cd)
  5. URL katerega koli računa Instagram je v formatu https://www.instagram.com/ ki mu sledi uporabniško ime. Nastavite URL profila kot,
    #nastavitev url-ja
    url='https://www.instagram.com/'
    url_p=url+uporabnik_h
  6. Funkciji get() posredujte celoten URL Instagram profila, ki ga želite obiskati.
    #odpri profil 
    voznik.dobiti(url_p)
  7. Nastavite neobvezno priporočeno zakasnitev, da se spletna stran popolnoma naloži.
    #delay za nalaganje vsebine strani
    čas.spati(5)
  8. Uporabite blok poskusi razen, da poiščete in ugotovite, ali slika profila pripada javnemu profilu. To se naredi z uporabo atributa razreda v izrazu XPath. V primeru neuspeha uporabite blok razen za iskanje po profilni sliki zasebnega računa.
    poskusi:
    #če je profil javen, poiščite sliko z razredom _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    razen:
    #če je profil zaseben, poiščite sliko z razredom _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Z uporabo get_attribute() pridobite atribut src slike. To vrne povezavo do slike.
    #store povezava za prenos slike 
    img_link=image.get_attribute('src')
  10. Nastavite pot in končnico prenesene datoteke. Nastavite lahko na primer, da se slika prenese na pogon D: vašega datotečnega sistema v formatu JPG kot.
    #set pot prenesene datoteke 
    pot="D:\\"+uporabniško ime+".jpg"
  11. Prenesite sliko tako, da posredujete povezavo slike profila kot vir in pot lokalne sistemske mape kot cilj do funkcije urlretrieve().
    #prenos slike na zahtevano destinacijo
    urllib.prošnja.urlretrieve(img_link,pot)
  12. Obiščite mapo in preverite, ali je bila slika profila prenesena. Po želji lahko prikažete tudi pot, kamor je bila prenesena slika profila.
    #displaying pot do prenesene slike profila 
    natisni("Profilna slika je bila prenesena na: "+pot)

Končna izvorna koda za Instagram Profile Pic Downloader z uporabo Pythona

Če združite vse skupaj, dobite:

#uvoz zahtevanih modulov
od selen uvoz spletni gonilnik
uvoz čas
uvoz urllib.request
#vnos uporabniškega imena profila, katerega sliko profila želite prenesti
uporabnik_h=vnos("Vnesite uporabniško ime profila: ")
#nastavitev url-ja
url='https://www.instagram.com/'
url_p=url+uporabnik_h
#ustvarjanje predmeta chromedriverja
cd='chromedriver.exe'
#odpri google
voznik = spletni gonilnik. Chrome(cd)
#odpri profil
voznik.dobiti(url_p)
#delay za nalaganje vsebine strani
čas.spati(5)
poskusi:
#če je profil javen, poiščite sliko z razredom _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
razen:
#če je profil zaseben, poiščite sliko z razredom _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#store povezava za prenos slike
img_link=image.get_attribute('src')

Aplikacije spletne avtomatizacije

Avtomatizacija ne samo, da vam pomaga prihraniti čas, denar in trud, ampak tudi zagotavlja dokončanje nalog in hkrati preprečuje napake. Uporabite to tehniko za avtomatizacijo prijave na različna spletna mesta, izvajanje varnostnega kopiranja strežnikov v oblaku, načrtovanje sporočil, voščilo za rojstne dneve na platformah družbenih medijev, ustvarjanje objav, objavo tvitov in še veliko več.