Ինչպես ներբեռնել Instagram-ի պրոֆիլի նկարը Python-ի միջոցով
Instagram-ի պրոֆիլի նկարները փոքր են: Ահա թե ինչպես կարելի է ներբեռնել պրոֆիլի պատկերը Python-ով և դիտել այն ամբողջական լուծաչափով:
Պրոֆիլի նկարը ցանկացած սոցիալական մեդիայի հաշվի հիմնական տարրերից մեկն է, սակայն Instagram-ի նման հավելվածները թույլ չեն տալիս դիտել կամ ներբեռնել այն: Այս գործընթացին կարելի է հեշտությամբ հասնել՝ օգտագործելով վեբ ավտոմատացման գործիք, ինչպիսին է Selenium-ը Python-ով:
Սովորեք օգտագործել այս հզոր դուետը՝ վեբ էջի ցանկացած տարրի հետ շփվելու, այն ավտոմատացնելու և արդյունավետ առաջադրանքների վրա ներդրումներ կատարելու համար ձեզ անգնահատելի ժամանակ խնայելու համար: Իսկ ամենալավ մասը. Կառուցեք սա առանց նույնիսկ մուտք գործելու կամ Instagram-ի հաշիվ ունենալու:
Ալգորիթմի կառուցման գործընթացը
Ալգորիթմի կառուցումը վերաբերում է խնդրի նույնականացման և այն քայլերի ցուցակագրման գործընթացին, որոնք պետք է ավտոմատացնել ծրագիրը: Պրոֆիլի նկարը ներբեռնելու համար պահանջվող տարբեր քայլերն են.
- Որպես մուտքագրեք պրոֆիլի օգտանունը
- Բացեք Google Chrome-ը
- Այցելեք Instagram-ի պրոֆիլը
- Ներբեռնեք պրոֆիլի նկարը
Սա ծառայում է որպես խնդրի հայտարարության ալգորիթմ:
Հասկանալով և տեղադրելով անհրաժեշտ մոդուլները և գործիքները
Այս նախագիծը օգտագործում է հետևյալ Python մոդուլներն ու գործիքները.
1. Urllib մոդուլ
Urllib-ը Python մոդուլ է, որն օգտագործվում է ինտերնետից URL-ներ մշակելու համար: Դուք պատրաստվում եք օգտագործել այս մոդուլը՝ հաշվի պրոֆիլի նկարը սկզբնաղբյուր URL-ից ներբեռնելու համար: Եթե Urllib-ը չկա ձեր համակարգում, կարող եք տեղադրել այն՝ օգտագործելով pip install urllib հրամանը:
2. Ժամանակի մոդուլ
Այս մոդուլը, չնայած պարտադիր չէ, կարող է հանգեցնել շինարարության ձախողմանը, եթե ձեր ինտերնետային կապը դանդաղ է կամ վեբ էջի բովանդակությունը բեռնված չէ Python ծրագրի վեբ էջի հետ փոխազդեցության ժամանակ: Delay() ֆունկցիան օգնում է մեզ մի փոքր ուշացում դնել, որպեսզի build-ը չտապալվի:
3. Սելենի մոդուլ
Բրաուզերի բաց կոդով ավտոմատացման ամենահայտնի գործիքներից մեկը Selenium-ն է: Այն հասանելի է Python փաթեթի տեսքով, որն աջակցում է տարբեր բրաուզերների, ինչպիսիք են Google Chrome-ը, Microsoft Edge-ը, Safari-ն և Mozilla Firefox-ը: Selenium-ը ձեր Python միջավայրում տեղադրելու համար բացեք ձեր Տերմինալը և կատարեք pip install selenium:
4. WebDriver
Վեբ դրայվերը Selenium-ի կողմից օգտագործվող գործիք է, որը կապ է հաստատում ծրագրի և ցանկացած կայքի միջև: Տարբեր տեսակի վեբ վարորդներ հասանելի են՝ հիմնվելով այն դիտարկիչի վրա, որը ցանկանում եք ավտոմատացնել: Այս կառուցման համար դուք պատրաստվում եք օգտագործել Google Chrome բրաուզերը: Chrome-ի վեբ վարորդը տեղադրելու համար՝
Ստուգեք ձեր օգտագործած դիտարկիչի տարբերակը՝ այցելելով Մենյու (3 կետ) >Օգնություն > Google Chrome-ի մասին:
Նշեք բրաուզերի տարբերակը:
- Այցելեք ChromeDriver-ի ներբեռնումների էջը՝ WebDriver Chrome-ի համար:
Ընտրեք այն տարբերակը, որը համապատասխանում է ձեր տարբերակի համարին ChromeDriver-ի ընթացիկ թողարկումներից:
Ընտրեք և ներբեռնեք ֆայլը ըստ ձեր օպերացիոն համակարգի:
- Քաղեք ներբեռնված ֆայլը և տեղադրեք այն նույն պանակում, ինչ ձեր Python ծրագիրը: Սա օգտակար կլինի կոդավորման ընթացքում ուղին սահմանելու համար:
Ինչպես ստուգել վեբ էջի ցանկացած կողմի ավտոմատացման կոդը
Selenium-ի և Python-ի օգտագործմամբ վեբ ավտոմատացման ցանկացած գործընթացի համար կարևոր է ունենալ համացանցի և դրա տեխնոլոգիաների հիմնական պատկերացումները: Առաջին քայլը HTML-ի ներածություն ձեռք բերելն է, որին հաջորդում է Cascading Style Sheets (CSS) հասկանալը: Այստեղ դուք կծանոթանաք ID-ների և դասերի հայեցակարգին:
ID-ները և դասերը եզակի անուններ են, որոնք տրվում են համապատասխանաբար որևէ տարրի կամ տարրերի հավաքածուի (պիտակների): Օգտագործելով դրանք, դուք գտնում եք անհրաժեշտ տարրը և հրահանգում Python ծրագրին հատուկ թիրախավորել այն: Կոդը ստուգելու և պրոֆիլի նկարը գտնելու համար՝
- Բացեք Instagram-ի էջը։
Կտտացրեք զննարկիչի Մենյու > Լրացուցիչ գործիքներ > Մշակողների գործիքներ կամ օգտագործեք դյուրանցումը Ctrl + Shift + Ես ակտիվացնեմ Developer Toolsտեսքը:
Սեղմեք և ընտրեք Element Picker գործիքը (մկնիկի կուրսորի պատկերակը) պատուհանի ձախ անկյունում և սավառնել այն վեբ էջի ցանկացած մասի վրա՝ անցնելու կոդի այդ բաժին:
Կարևոր է նշել, որ հանրային և անձնական հաշվի պրոֆիլի նկարները տարբեր կերպ են դրված: Տեղադրեք կուրսորը հանրային հաշվի պրոֆիլի նկարի վրա: Հանրային պրոֆիլի դասի հատկանիշն է _aa8j:
Կրկնեք վերը նշված քայլը անձնական պրոֆիլի համար: Դասի հատկանիշն է _aadp:
Դուք կարող եք օգտագործել այս ընթացակարգը՝ հասկանալու ցանկացած վեբ էջ և թիրախավորել ցանկացած տարր ավտոմատացման համար:
Ինչպես կառուցել Instagram պրոֆիլի նկարների ներբեռնիչ
Ներբեռնիչը ստեղծելու համար հետևեք այս քայլերին:
Ներմուծեք անհրաժեշտ մոդուլները Python միջավայր:
from selenium import webdriver import time import urllib.request
Օգտագործելով մուտքագրման գործառույթը, ստացեք այն պրոֆիլի օգտանունը, որի պրոֆիլի նկարը պետք է ներբեռնվի և պահեք այն փոփոխականում, որը կոչվում է օգտվողի անուն:
#entering the username of the profile whose profile picture is to be downloaded username=input("Enter the username of the profile: ")
Նախաձեռնեք վեբ դրայվերը՝ ստեղծելով դրա օբյեկտ և անցնելով դրա ֆայլային համակարգի ուղին:
#creating an object of chromedriver cd='chromedriver.exe'
Google Chrome դիտարկիչը գործարկելու համար օգտագործեք webdriver.Chrome ֆունկցիան:
#open google chrome browser driver = webdriver.Chrome(cd)
Instagram-ի ցանկացած հաշվի URL-ն ունի https://www.instagram.com/ ձևաչափ, որին հաջորդում է օգտանունը: Սահմանեք պրոֆիլի URL-ը որպես՝
#setting the url url='https://www.instagram.com/' url_p=url+user_h
Անցեք Instagram-ի այն պրոֆիլի ամբողջական URL-ը, որին պետք է այցելեք get() ֆունկցիային:
#open the profile driver.get(url_p)
Սահմանեք կամընտիր առաջարկվող ուշացում՝ վեբ էջի ամբողջական բեռնման համար:
#delay for page content loading time.sleep(5)
Օգտագործեք try-except բլոկը՝ տեղորոշելու և որոշելու համար, թե արդյոք պրոֆիլի նկարը պատկանում է հանրային պրոֆիլին: Դա արվում է XPath արտահայտության մեջ class հատկանիշի օգտագործմամբ: Անհաջողության դեպքում օգտագործեք բացառության բլոկը՝ մասնավոր հաշվի պրոֆիլի նկարը որոնելու համար:
try: #if profile is public, search for image with class _aa8j image=driver.find_element_by_xpath('//img[@class="_aa8j"]') except: #if profile is private, search for image with class _aadp image=driver.find_element_by_xpath('//img[@class="_aadp"]')
Օգտագործելով get_attribute() ստացեք պատկերի src հատկանիշը: Սա վերադարձնում է պատկերի հղումը:
#store the download link of image img_link=image.get_attribute('src')
Սահմանեք ներբեռնված ֆայլի ուղին և ընդլայնումը: Օրինակ, կարող եք նկարը ներբեռնել ձեր ֆայլային համակարգի D: դրայվում՝ JPG ձևաչափով, ինչպես:
#set path of downloaded file path="D:\\"+username+".jpg"
Ներբեռնեք պատկերը՝ որպես աղբյուր փոխանցելով պրոֆիլի նկարի հղումը և տեղական համակարգի թղթապանակի ուղին՝ որպես urlretrieve() ֆունկցիայի նպատակակետ:
#downloading image to the required destination urllib.request.urlretrieve(img_link,path)
Այցելեք թղթապանակը և տեսեք, որ պրոֆիլի նկարը ներբեռնվել է: Ցանկության դեպքում կարող եք նաև ցուցադրել այն ուղին, որտեղ ներբեռնվել է պրոֆիլի նկարը:
#displaying the path of the profile pic downloaded print("The profile pic has been downloaded at: "+path)
Ինստագրամի պրոֆիլի նկարներ ներբեռնողի վերջնական կոդ՝ օգտագործելով Python
Այս ամենը ի մի բերելով՝ դուք ստանում եք.
#importing the required modules
from selenium import webdriver
import time
import urllib.request
#entering the username of the profile whose profile picture is to be downloaded
user_h=input("Enter the username of the profile: ")
#setting the url
url='https://www.instagram.com/'
url_p=url+user_h
#creating object of chromedriver
cd='chromedriver.exe'
#open google
driver = webdriver.Chrome(cd)
#open the profile
driver.get(url_p)
#delay for page content loading
time.sleep(5)
try:
#if profile is public, search for image with class _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
except:
#if profile is private, search for image with class _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')
#store the download link of image
img_link=image.get_attribute('src')
Վեբ ավտոմատացման կիրառություններ
Ավտոմատացումը ոչ միայն օգնում է խնայել ժամանակ, գումար և ջանք, այլ նաև երաշխավորում է առաջադրանքների կատարումը՝ միաժամանակ կանխելով սխալները: Օգտագործեք այս տեխնիկան՝ տարբեր կայքերի մուտքն ավտոմատացնելու, ամպային սերվերների կրկնօրինակում կատարելու, հաղորդագրությունների ժամանակացույցի, սոցիալական մեդիա հարթակներում ծննդյան տոներ մաղթելու, գրառումներ ստեղծելու, թվիթներ հրապարակելու և շատ ավելին: