Profila attēls ir viens no jebkura sociālo mediju konta galvenajiem elementiem, taču tādas lietojumprogrammas kā Instagram neļauj to skatīt vai lejupielādēt. Šo procesu var viegli sasniegt, izmantojot tīmekļa automatizācijas rīku, piemēram, Selenium ar Python.

Uzziniet, kā izmantot šo jaudas duetu, lai mijiedarbotos ar jebkuru tīmekļa lapas elementu, automatizētu to un ietaupītu sev nenovērtējamu laiku, ieguldot produktīvos uzdevumos. Un labākā daļa? Izveidojiet to, pat nepiesakoties vai neizmantojot Instagram kontu.!

Algoritmu veidošanas process

Algoritma veidošana attiecas uz problēmas identificēšanas procesu un programmu automatizējamo darbību uzskaitījumu. Lai lejupielādētu profila attēlu, ir jāveic dažādas darbības:

  1. Kā ievadi izmantojiet profila lietotājvārdu
  2. Atveriet Google Chrome
  3. Apmeklējiet Instagram profilu
  4. Lejupielādējiet profila attēlu

Tas kalpo kā problēmas paziņojuma algoritms.

Šajā projektā tiek izmantoti šādi Python moduļi un rīki.

1. Urllib modulis

Urllib ir Python modulis, ko izmanto, lai apstrādātu vietrāžus URL no interneta. Jūs izmantosit šo moduli, lai lejupielādētu konta profila attēlu no tā avota URL. Ja Urllib jūsu sistēmā nav, varat to instalēt, izmantojot komandu

pip instalēt urllib.

2. Laika modulis

Šis modulis, lai gan tas nav obligāts, var izraisīt būvēšanas kļūmi, ja interneta savienojums ir lēns vai tīmekļa lapas saturs netiek ielādēts Python programmas mijiedarbības laikā ar tīmekļa lapa. Funkcija delay() palīdz mums iestatīt nelielu aizkavi, lai būvēšana neizdosies.

3. Selēna modulis

Viens no populārākajiem atvērtā pirmkoda pārlūkprogrammas automatizācijas rīkiem ir Selēns. Tā ir pieejama kā Python pakotne, kas atbalsta dažādas pārlūkprogrammas, piemēram, Google Chrome, Microsoft Edge, Safari un Mozilla Firefox. Lai Python vidē instalētu Selenium, atveriet savu Terminālis un izpildītpip instalēt selēnu.

4. WebDriver

Tīmekļa draiveris ir Selenium izmantots rīks, kas izveido savienojumu starp programmu un jebkuru vietni. Dažāda veida tīmekļa draiveri ir pieejami, pamatojoties uz pārlūkprogrammu, kuru vēlaties automatizēt. Šai versijai jūs izmantosit pārlūkprogrammu Google Chrome. Lai instalētu tīmekļa draiveri pārlūkam Chrome:

  1. Pārbaudiet izmantotās pārlūkprogrammas versiju, apmeklējot Izvēlne (3 punkti) > Palīdzība > Par Google Chrome.
  2. Ņemiet vērā pārlūkprogrammas versiju.
  3. Apmeklējiet lejupielāžu lapu ChromeDriver — tīmekļa draiveris pārlūkam Chrome.
  4. Atlasiet opciju, kas atbilst jūsu versijas numuram no pašreizējiem ChromeDriver laidieniem.
  5. Izvēlieties un lejupielādējiet failu atbilstoši savai operētājsistēmai.
  6. Izvelciet lejupielādēto failu un ievietojiet to tajā pašā mapē, kurā atrodas jūsu Python programma. Tas būs noderīgi, lai iestatītu ceļu kodēšanas laikā.

Kā pārbaudīt kodu jebkura Web lapas aspekta automatizēšanai

Ikvienam tīmekļa automatizācijas procesam, kurā tiek izmantots Selenium un Python, ir svarīgi iegūt pamatzināšanas par tīmekli un tā tehnoloģijām. Pirmais solis ir iegūt ievads HTML seko izpratne par kaskādes stila lapām (CSS). Šeit jūs iepazīsities ar ID un klašu jēdzienu.

ID un klases ir unikāli nosaukumi, kas attiecīgi piešķirti elementam vai elementu kopai (tagiem). Izmantojot tos, jūs atrodat vajadzīgo elementu un uzdodat Python programmai to īpaši atlasīt. Lai pārbaudītu kodu un atrastu profila attēlu:

  1. Atveriet Instagram konta tīmekļa lapu.
  2. Noklikšķiniet uz pārlūkprogrammas Izvēlne > Vairāk rīku > Izstrādātāja rīki vai izmantojiet īsceļu Ctrl+Shift+I lai aktivizētu Izstrādātāja rīki skats.
  3. Noklikšķiniet un atlasiet Elementu atlasītājs rīku (peles kursora ikonu) loga kreisajā stūrī un virziet to virs jebkuras tīmekļa lapas daļas, lai pārietu uz attiecīgo koda sadaļu.
  4. Ir svarīgi ņemt vērā, ka publiskā konta un privātā konta profila attēli tiek iestatīti atšķirīgi. Novietojiet kursoru virs publiskā konta profila attēla. Publiskā profila klases atribūts ir _aa8j.
  5. Atkārtojiet iepriekš minēto darbību privātam profilam. Klases atribūts ir _aadp.

Varat izmantot šo procedūru, lai izprastu jebkuru tīmekļa lapu un atlasītu jebkuru automatizācijas elementu.

Kā izveidot Instagram profila attēlu lejupielādētāju

Veiciet šīs darbības, lai izveidotu lejupielādētāju.

  1. Importējiet nepieciešamos moduļus Python vidē.
    no selēns imports tīmekļa draiveris
    imports laiks
    imports urllib.request
  2. Izmantojot ievades funkciju, iegūstiet tā profila lietotājvārdu, kura profila attēlu vēlaties lejupielādēt, un saglabājiet to mainīgajā, ko sauc par lietotājvārdu.
    #ievadot tā profila lietotājvārdu, kura profila bilde tiks lejupielādēta 
    lietotājvārds=input("Ievadiet profila lietotājvārdu: ")
  3. Inicializējiet tīmekļa draiveri, izveidojot tā objektu un nododot tā failu sistēmas ceļu.
    #chromeddriver objekta izveide 
    cd='chromedriver.exe'
  4. Izmantojiet tīmekļa draiveris. Chrome funkcija, lai palaistu pārlūkprogrammu Google Chrome.
    #atveriet pārlūkprogrammu Google Chrome 
    draiveris = tīmekļa draiveris. Chrome(cd)
  5. Jebkura Instagram konta vietrādim URL ir šāds formāts https://www.instagram.com/ kam seko lietotājvārds. Iestatiet profila URL kā
    #URL iestatīšana
    url='https://www.instagram.com/'
    url_p=url+lietotāja_h
  6. Nododiet visu apmeklējamā Instagram profila URL funkcijai get().
    #atver profilu 
    vadītājs.gūt(url_p)
  7. Iestatiet neobligātu ieteicamo aizkavi tīmekļa lapas pilnīgai ielādei.
    #aizkavēšanās lapas satura ielādei
    laiks.Gulēt(5)
  8. Izmantojiet bloku try-except, lai atrastu un noteiktu, vai profila attēls pieder publiskam profilam. Tas tiek darīts, XPath izteiksmē izmantojot klases atribūtu. Neveiksmes gadījumā izmantojiet izņēmuma bloku, lai meklētu privātā konta profila attēlā.
    mēģināt:
    #ja profils ir publisks, meklējiet attēlu ar klasi _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    izņemot:
    #ja profils ir privāts, meklējiet attēlu ar klasi _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Izmantojot get_attribute(), iegūstiet attēla atribūtu src. Tas atgriež attēla saiti.
    #saglabājiet attēla lejupielādes saiti 
    img_link=image.get_attribute('src')
  10. Iestatiet lejupielādētā faila ceļu un paplašinājumu. Piemēram, varat iestatīt, lai attēls tiktu lejupielādēts jūsu failu sistēmas D: diskdzinī JPG formātā kā.
    #iestatiet lejupielādētā faila ceļu 
    ceļš="D:\\"+lietotājvārds+".jpg"
  11. Lejupielādējiet attēlu, nododot profila attēla saiti kā avotu un vietējās sistēmas mapes ceļu kā galamērķi funkcijai urlretrieve().
    #attēla lejupielāde vajadzīgajā galamērķī
    urllib.pieprasījums.urlretrieve(img_link,ceļš)
  12. Apmeklējiet mapi un pārbaudiet, vai profila attēls ir lejupielādēts. Pēc izvēles varat arī parādīt ceļu, kur tika lejupielādēts profila attēls.
    #tiek rādīts lejupielādētā profila attēla ceļš 
    drukāt ("Profila bilde ir lejupielādēta šeit: "+ceļš)

Galīgais avota kods Instagram profila attēlu lejupielādētājam, izmantojot Python

Apvienojot to visu kopā, jūs iegūstat:

#vajadzīgo moduļu importēšana
no selēns imports tīmekļa draiveris
imports laiks
imports urllib.request
#ievadot tā profila lietotājvārdu, kura profila bilde tiks lejupielādēta
user_h=input("Ievadiet profila lietotājvārdu: ")
#URL iestatīšana
url='https://www.instagram.com/'
url_p=url+lietotāja_h
#chromeddriver objekta izveide
cd='chromedriver.exe'
#atvērt Google
draiveris = tīmekļa draiveris. Chrome(cd)
#atver profilu
vadītājs.gūt(url_p)
#aizkavēšanās lapas satura ielādei
laiks.Gulēt(5)
mēģināt:
#ja profils ir publisks, meklējiet attēlu ar klasi _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
izņemot:
#ja profils ir privāts, meklējiet attēlu ar klasi _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#saglabājiet attēla lejupielādes saiti
img_link=image.get_attribute('src')

Tīmekļa automatizācijas lietojumprogrammas

Automatizācija ne tikai palīdz ietaupīt laiku, naudu un pūles, bet arī garantē uzdevumu izpildi, vienlaikus novēršot kļūdas. Izmantojiet šo paņēmienu, lai automatizētu dažādu vietņu pieteikšanos, dublētu mākoņserverus, ieplānotu ziņojumus, novēlētu dzimšanas dienas sociālo mediju platformās, izveidotu ziņas, publicētu tvītus un daudz ko citu.