Профилната снимка е един от основните елементи на всеки акаунт в социални медии, но приложения като Instagram не ви позволяват да я преглеждате или изтегляте. Този процес може лесно да се постигне с помощта на инструмент за уеб автоматизация като Selenium с Python.

Научете се да използвате това мощно дуо, за да взаимодействате с всеки елемент от уеб страница, да го автоматизирате и да си спестите безценно време, инвестирайки в продуктивни задачи. И най-добрата част? Изградете това, без дори да влизате или да имате акаунт в Instagram!

Процесът на изграждане на алгоритъм

Изграждането на алгоритъм се отнася до процеса на идентифициране на проблема и изброяване на стъпките, които програмата трябва да автоматизира. Различните стъпки, необходими за изтегляне на профилна снимка, са:

  1. Вземете потребителското име на профил като вход
  2. Отворете Google Chrome
  3. Посетете профила в Instagram
  4. Изтеглете профилната снимка

Това служи като алгоритъм на постановката на проблема.

Този проект използва следните модули и инструменти на Python.

instagram viewer

1. Модул Urllib

Urllib е модул на Python, използван за обработка на URL адреси от интернет. Ще използвате този модул, за да изтеглите снимката на профила на акаунта от URL адреса на източника. Ако Urllib не присъства във вашата система, можете да го инсталирате с помощта на командата pip инсталирайте urllib.

2. Времеви модул

Този модул, макар и да не е задължителен, може да доведе до неуспешно изграждане, ако вашата интернет връзка е бавна или съдържанието на уеб страницата не се зарежда по време на взаимодействие на програмата Python с уеб страница. Функцията delay() ни помага да поставим малко забавяне, така че изграждането да не се провали.

3. Селенов модул

Един от най-популярните инструменти за автоматизация на браузъри с отворен код е Selenium. Предлага се като пакет Python, поддържащ различни браузъри като Google Chrome, Microsoft Edge, Safari и Mozilla Firefox. За да инсталирате Selenium във вашата Python среда, отворете вашия Терминал и изпълниpip инсталирайте селен.

4. Уебдрайвер

Уеб драйверът е инструмент, използван от Selenium, който установява връзка между програмата и всеки уебсайт. Различни видове уеб драйвери са налични въз основа на браузъра, който искате да автоматизирате. За тази компилация ще използвате браузъра Google Chrome. За да инсталирате уеб драйвера за Chrome:

  1. Проверете версията на браузъра, който използвате, като посетите Меню (3 точки) >Помощ > Относно Google Chrome.
  2. Обърнете внимание на версията на браузъра.
  3. Посетете страницата за изтегляне на ChromeDriver - Уебдрайвер за Chrome.
  4. Изберете опцията, която съответства на номера на вашата версия от текущите версии на ChromeDriver.
  5. Изберете и изтеглете файла според вашата операционна система.
  6. Извлечете изтегления файл и го поставете в същата папка като вашата програма Python. Това ще бъде полезно при задаване на пътя по време на кодиране.

Как да проверите кода за автоматизиране на всеки аспект на уеб страница

За всеки процес на уеб автоматизация, използващ Selenium и Python, е от съществено значение да имате основни познания за мрежата и нейните технологии. Първата стъпка е да спечелите въведение в HTML следван от разбиране на каскадни стилови таблици (CSS). Това е мястото, където ще се запознаете с концепцията за идентификатори и класове.

Идентификаторите и класовете са уникални имена, дадени съответно на елемент или набор от елементи (тагове). Използвайки ги, вие намирате необходимия елемент и инструктирате програмата Python да го насочи конкретно. За да проверите кода и да намерите профилната снимка:

  1. Отворете уеб страницата на акаунта в Instagram.
  2. Кликнете върху браузъра Меню > Още инструменти > Инструменти за разработчици или използвайте прекия път Ctrl + Shift + I за да активирате Инструменти за разработчици изглед.
  3. Щракнете и изберете Избор на елемент инструмент (икона на курсора на мишката) в левия ъгъл на прозореца и го задръжте над която и да е част от уеб страницата, за да преминете към този раздел от кода.
  4. Важно е да се отбележи, че профилните снимки на публичен и частен акаунт са зададени по различен начин. Задръжте курсора върху профилната снимка на публичен акаунт. Атрибутът клас за публичния профил е _aa8j.
  5. Повторете горната стъпка за частен профил. Атрибутът клас е _aadp.

Можете да използвате тази процедура, за да разберете всяка уеб страница и да насочите всеки елемент за автоматизация.

Как да създадете програмата за изтегляне на снимки на профил в Instagram

Следвайте тези стъпки, за да създадете програмата за изтегляне.

  1. Импортирайте необходимите модули в средата на Python.
    от селен импортиране уебдрайвер
    импортиране време
    импортиране urllib.request
  2. Използвайки функцията за въвеждане, вземете потребителското име на профила, чиято профилна снимка трябва да бъде изтеглена, и го запазете в променлива, наречена потребителско име.
    #въвеждане на потребителското име на профила, чиято профилна снимка ще бъде изтеглена 
    потребителско име=въведено("Въведете потребителското име на профила: ")
  3. Инициализирайте уеб драйвера, като създадете негов обект и предадете пътя на неговата файлова система.
    #създаване на обект на chromedriver 
    cd='chromedriver.exe'
  4. Използвай уебдрайвер. Chrome функция за стартиране на браузъра Google Chrome.
    #отворете браузъра google chrome 
    драйвер = уебдрайвер. Chrome(cd)
  5. URL адресът на всеки акаунт в Instagram е във формат https://www.instagram.com/ последвано от потребителското име. Задайте URL адреса на профила като,
    #задаване на url
    url='https://www.instagram.com/'
    url_p=url+user_h
  6. Предайте пълния URL адрес на профила в Instagram, който ще бъде посетен, към функцията get().
    #отворете профила 
    шофьор.get(url_p)
  7. Задайте незадължително препоръчително забавяне за пълното зареждане на уеб страницата.
    #закъснение за зареждане на съдържанието на страницата
    време.сън(5)
  8. Използвайте блока try-except, за да намерите и определите дали профилната снимка принадлежи на публичен профил. Това се прави чрез използване на атрибута клас в XPath израза. В случай на неуспех, използвайте блока за изключение, за да търсите в профилната снимка на частен акаунт.
    опитвам:
    #ако профилът е публичен, потърсете изображение с клас _aa8j
    image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    с изключение:
    #ако профилът е частен, потърсете изображение с клас _aadp
    image=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Използвайки get_attribute(), получете src атрибута на изображението. Това връща връзката към изображението.
    #store връзката за изтегляне на изображението 
    img_link=image.get_attribute('src')
  10. Задайте пътя и разширението на изтегления файл. Например, можете да зададете картината да бъде изтеглена на D: устройството на вашата файлова система във формат JPG като.
    #set път на изтегления файл 
    път="Д:\\"+потребителско име+".jpg"
  11. Изтеглете изображението, като прехвърлите връзката на профилната снимка като източник и пътя на локалната системна папка като дестинация към функцията urlretrieve().
    #изтегляне на изображение до желаната дестинация
    urllib.заявка.urlretrieve(img_link,път)
  12. Посетете папката и вижте, че профилната снимка е изтеглена. По желание можете също да покажете пътя, където е изтеглена профилната снимка.
    #показване на пътя на изтеглената профилна снимка 
    печат ("Профилната снимка е изтеглена от: "+ път)

Окончателен изходен код за програма за изтегляне на снимки на профил в Instagram с помощта на Python

Събирайки всичко това, получавате:

#импортиране на необходимите модули
от селен импортиране уебдрайвер
импортиране време
импортиране urllib.request
#въвеждане на потребителското име на профила, чиято профилна снимка ще бъде изтеглена
user_h=input("Въведете потребителското име на профила: ")
#задаване на url
url='https://www.instagram.com/'
url_p=url+user_h
#създаване на обект на chromedriver
cd='chromedriver.exe'
#отворете Google
драйвер = уебдрайвер. Chrome(cd)
#отворете профила
шофьор.get(url_p)
#закъснение за зареждане на съдържанието на страницата
време.сън(5)
опитвам:
#ако профилът е публичен, потърсете изображение с клас _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
с изключение:
#ако профилът е частен, потърсете изображение с клас _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')

#store връзката за изтегляне на изображението
img_link=image.get_attribute('src')

Приложения на уеб автоматизация

Автоматизацията не само ви помага да спестите време, пари и усилия, но също така гарантира изпълнението на задачите, като същевременно предотвратява грешки. Използвайте тази техника, за да автоматизирате влизането в различни уебсайтове, да извършвате архивиране на облачни сървъри, да планирате съобщения, да пожелавате рождени дни в платформи на социални медии, да създавате публикации, да публикувате туитове и много други.