Profilio nuotrauka yra vienas iš svarbiausių bet kurios socialinės žiniasklaidos paskyros elementų, tačiau tokios programos kaip „Instagram“ neleidžia jos peržiūrėti ar atsisiųsti. Šį procesą galima lengvai pasiekti naudojant žiniatinklio automatizavimo įrankį, pvz., Selenium su Python.

Išmokite naudoti šį galingą duetą, kad galėtumėte sąveikauti su bet kuriuo tinklalapio elementu, jį automatizuoti ir sutaupykite neįkainojamo laiko, investuodami į produktyvias užduotis. Ir geriausia dalis? Sukurkite tai net neprisijungę ar neturėdami Instagram paskyros.!

Algoritmo sudarymo procesas

Algoritmo kūrimas reiškia problemos nustatymo procesą ir veiksmų, kuriuos programa turi automatizuoti, sąrašą. Norint atsisiųsti profilio nuotrauką, reikia atlikti šiuos veiksmus:

  1. Įveskite profilio vartotojo vardą
  2. Atidarykite Google Chrome
  3. Apsilankykite Instagram profilyje
  4. Atsisiųsti profilio nuotrauką

Tai yra problemos teiginio algoritmas.

Šiame projekte naudojami šie Python moduliai ir įrankiai.

1. Urllib modulis

instagram viewer

Urllib yra Python modulis, naudojamas tvarkyti URL iš interneto. Naudosite šį modulį, norėdami atsisiųsti paskyros profilio nuotrauką iš šaltinio URL. Jei Urllib jūsų sistemoje nėra, galite jį įdiegti naudodami komandą pip install urllib.

2. Laiko modulis

Šis modulis, nors ir nėra privalomas, gali sukelti kūrimo nesėkmę, jei jūsų interneto ryšys lėtas arba tinklalapio turinys neįkeliamas Python programos sąveikos su tinklo puslapis. Funkcija delay() padeda nustatyti nedidelį delsą, kad kūrimas nesugestų.

3. Seleno modulis

Vienas iš populiariausių atvirojo kodo naršyklės automatizavimo įrankių yra Selenas. Jį galima įsigyti kaip Python paketą, palaikantį įvairias naršykles, tokias kaip Google Chrome, Microsoft Edge, Safari ir Mozilla Firefox. Norėdami įdiegti Selenium savo Python aplinkoje, atidarykite savo Terminalas ir vykdytipip įdiegti seleną.

4. WebDriver

Žiniatinklio tvarkyklė yra Selenium naudojamas įrankis, užmezgantis ryšį tarp programos ir bet kurios svetainės. Įvairių tipų žiniatinklio tvarkyklės yra prieinami pagal naršyklę, kurią norite automatizuoti. Šiam kūrimui naudosite „Google Chrome“ naršyklę. Norėdami įdiegti žiniatinklio tvarkyklę, skirtą Chrome:

  1. Patikrinkite naudojamos naršyklės versiją apsilankę Meniu (3 taškai) > Pagalba > Apie Google Chrome.
  2. Atkreipkite dėmesį į naršyklės versiją.
  3. Apsilankykite atsisiuntimų puslapyje „ChromeDriver“ – „Chrome“ skirta žiniatinklio tvarkyklė.
  4. Pasirinkite parinktį, atitinkančią jūsų versijos numerį iš dabartinių „ChromeDriver“ leidimų.
  5. Pasirinkite ir atsisiųskite failą pagal savo operacinę sistemą.
  6. Ištraukite atsisiųstą failą ir įdėkite jį į tą patį aplanką kaip ir jūsų Python programa. Tai bus naudinga nustatant kelią kodavimo metu.

Kaip patikrinti bet kurio tinklalapio aspekto automatizavimo kodą

Norint atlikti bet kokį žiniatinklio automatizavimo procesą naudojant Selenium ir Python, būtina turėti pagrindinį žiniatinklio ir jo technologijų supratimą. Pirmas žingsnis – įgyti įvadas į HTML sekė kaskadinių stiliaus lapų (CSS) supratimas. Čia susipažinsite su ID ir klasių sąvoka.

ID ir klasės yra unikalūs pavadinimai, atitinkamai suteikiami elementui arba elementų rinkiniui (žymoms). Naudodami juos suraskite reikiamą elementą ir nurodysite „Python“ programai konkrečiai jį nukreipti. Norėdami patikrinti kodą ir rasti profilio nuotrauką:

  1. Atidarykite „Instagram“ paskyros tinklalapį.
  2. Spustelėkite naršyklę Meniu > Daugiau įrankių > Kurejo irankiai arba naudokite spartųjį klavišą Ctrl + Shift + I norėdami suaktyvinti Kurejo irankiai peržiūrėti.
  3. Spustelėkite ir pasirinkite Elementų rinkėjas įrankį (pelės žymeklio piktogramą) kairiajame lango kampe ir užveskite pelės žymeklį virš bet kurios tinklalapio dalies, kad pereitumėte į tą kodo skyrių.
  4. Svarbu pažymėti, kad viešosios ir privačios paskyros profilio nuotraukos nustatomos skirtingai. Užveskite pelės žymeklį virš viešosios paskyros profilio nuotraukos. Viešojo profilio klasės atributas yra _aa8j.
  5. Pakartokite aukščiau aprašytą veiksmą privačiam profiliui. Klasės atributas yra _aadp.

Šią procedūrą galite naudoti norėdami suprasti bet kurį tinklalapį ir pritaikyti bet kurį elementą automatizavimui.

Kaip sukurti „Instagram“ profilio nuotraukų atsisiuntimo programą

Norėdami sukurti atsisiuntimo programą, atlikite šiuos veiksmus.

  1. Importuokite reikiamus modulius į Python aplinką.
     seleno importuoti žiniatinklio tvarkyklės
    importuoti laikas
    importuoti urllib.request
  2. Naudodami įvesties funkciją, gaukite profilio, kurio profilio nuotrauką norite atsisiųsti, vartotojo vardą ir išsaugokite jį kintamajame, vadinamame vartotojo vardu.
    #įveskite profilio, kurio profilio nuotrauką norite atsisiųsti, vartotojo vardą 
    vartotojo vardas=input("Įveskite profilio vartotojo vardą: ")
  3. Inicijuokite žiniatinklio tvarkyklę sukurdami jos objektą ir nurodydami jo failų sistemos kelią.
    #kuriame chromedriver objektą 
    cd='chromedriver.exe'
  4. Naudoti žiniatinklio tvarkyklės. Chrome funkcija „Google Chrome“ naršyklei paleisti.
    #atidaryti google chrome naršyklę 
    vairuotojas = žiniatinklio tvarkyklė. Chrome (cd)
  5. Bet kurios „Instagram“ paskyros URL yra tokio formato https://www.instagram.com/ po kurio nurodomas vartotojo vardas. Nustatykite profilio URL kaip
    #URL nustatymas
    url='https://www.instagram.com/'
    url_p=url+user_h
  6. Perduokite visą „Instagram“ profilio, kuriame norite aplankyti, URL, kad gautumėte () funkciją.
    #atidaryti profilį 
    vairuotojas.gauti(url_p)
  7. Nustatykite pasirenkamą rekomenduojamą delsą, kad tinklalapis būtų visiškai įkeltas.
    #puslapio turinio įkėlimo delsa
    laikas.miega(5)
  8. Norėdami rasti ir nustatyti, ar profilio nuotrauka priklauso viešajam profiliui, naudokite bloką try-except. Tai atliekama XPath išraiškoje naudojant klasės atributą. Jei nepavyks, naudokite bloką „Išskyrus“, kad galėtumėte ieškoti privačios paskyros profilio nuotraukoje.
    bandyti:
    #jei profilis viešas, ieškokite vaizdo su klase _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    išskyrus:
    #jei profilis privatus, ieškokite vaizdo su klase _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Naudodami get_attribute(), gaukite vaizdo atributą src. Tai grąžina vaizdo nuorodą.
    #saugokite vaizdo atsisiuntimo nuorodą 
    img_link=image.get_attribute('src')
  10. Nustatykite atsisiųsto failo kelią ir plėtinį. Pavyzdžiui, galite nustatyti, kad paveikslėlis būtų atsiųstas į failų sistemos D: diską JPG formatu kaip.
    #nustatyti atsisiųsto failo kelią 
    kelias ="D:\\"+vartotojo vardas+".jpg"
  11. Atsisiųskite vaizdą perduodami profilio nuotraukos nuorodą kaip šaltinį ir vietinio sistemos aplanko kelią kaip paskirties vietą funkcijai urlretrieve ().
    #atsisiunčiamas vaizdas į reikiamą vietą
    urllib.prašymas.urlretrieve(img_link,kelias)
  12. Apsilankykite aplanke ir pažiūrėkite, ar profilio nuotrauka atsisiųsta. Pasirinktinai taip pat galite rodyti kelią, kur buvo atsiųsta profilio nuotrauka.
    #rodomas atsisiųsto profilio nuotraukos kelias 
    spausdinti ("Profilio nuotrauka atsisiųsta adresu: "+kelias)

Galutinis „Instagram“ profilio nuotraukų atsisiuntimo programos šaltinio kodas naudojant „Python“.

Sujungę visa tai, gausite:

#importuoti reikiamus modulius
seleno importuoti žiniatinklio tvarkyklės
importuoti laikas
importuoti urllib.request
#įveskite profilio, kurio profilio nuotrauką norite atsisiųsti, vartotojo vardą
user_h=input("Įveskite profilio vartotojo vardą: ")
#URL nustatymas
url='https://www.instagram.com/'
url_p=url+user_h
#kuriamas chromedriver objektas
cd='chromedriver.exe'
#atidaryti google
vairuotojas = žiniatinklio tvarkyklė. Chrome (cd)
#atidaryti profilį
vairuotojas.gauti(url_p)
#puslapio turinio įkėlimo delsa
laikas.miega(5)
bandyti:
#jei profilis viešas, ieškokite vaizdo su klase _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
išskyrus:
#jei profilis privatus, ieškokite vaizdo su klase _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#saugokite vaizdo atsisiuntimo nuorodą
img_link=image.get_attribute('src')

Interneto automatizavimo programos

Automatizavimas ne tik padeda sutaupyti laiko, pinigų ir pastangų, bet ir garantuoja užduočių atlikimą, išvengiant klaidų. Naudokite šią techniką norėdami automatizuoti skirtingų svetainių prisijungimą, kurti atsargines debesų serverių kopijas, planuoti pranešimus, palinkėti gimtadienio socialinės žiniasklaidos platformose, kurti įrašus, skelbti tviterius ir dar daugiau.