Profil resmi, herhangi bir sosyal medya hesabının ana unsurlarından biridir, ancak Instagram gibi uygulamalar onu görüntülemenize veya indirmenize izin vermez. Bu işlem, Python ile Selenium gibi bir web otomasyon aracı kullanılarak kolayca gerçekleştirilebilir.
Bir web sayfasının herhangi bir öğesiyle etkileşim kurmak, onu otomatikleştirmek ve üretken görevlere yatırım yaparak kendinize çok değerli zaman kazandırmak için bu güçlü ikiliyi kullanmayı öğrenin. Ve en iyi kısmı? Giriş yapmadan veya bir Instagram hesabına sahip olmadan bunu oluşturun.!
Algoritma Oluşturma Süreci
Algoritma oluşturma, sorunu belirleme ve programın otomatikleştirmesi gereken adımları listeleme sürecini ifade eder. Bir profil resmini indirmek için gereken farklı adımlar şunlardır:
Bir profilin kullanıcı adını girdi olarak alın
Google Chrome’u açın
Instagram profilini ziyaret edin
Profil resmini indir
Bu, problem ifadesinin algoritması olarak hizmet eder.
Gerekli Modülleri ve Araçları Anlama ve Yükleme
Bu proje aşağıdaki Python modüllerini ve araçlarını kullanır.
1. Urllib Modülü
Urllib, internetten URL’leri işlemek için kullanılan bir Python modülüdür. Hesabın profil resmini kaynak URL’sinden indirmek için bu modülü kullanacaksınız. Urllib sisteminizde yoksa, pip install urllib komutunu kullanarak kurabilirsiniz .
2. Zaman Modülü
Bu modül zorunlu olmamakla birlikte, internet bağlantınız yavaşsa veya web sayfasıyla Python programı etkileşimi sırasında web sayfasının içeriği yüklenmezse derlemenin başarısız olmasına neden olabilir. Delay() işlevi, derlemenin başarısız olmaması için küçük bir gecikme koymamıza yardımcı olur.
3. Selenyum Modülü
En popüler açık kaynaklı tarayıcı otomasyon araçlarından biri Selenium’dur. Google Chrome, Microsoft Edge, Safari ve Mozilla Firefox gibi çeşitli tarayıcıları destekleyen bir Python paketi olarak mevcuttur. Selenium’u Python ortamınıza kurmak için Terminalinizi açın ve pip install Selenium’u çalıştırın .
4. Web Sürücüsü
Web sürücüsü, Selenium tarafından kullanılan ve program ile herhangi bir web sitesi arasında bağlantı kuran bir araçtır. Otomatikleştirmek istediğiniz tarayıcıya bağlı olarak farklı türde web sürücüleri mevcuttur. Bu yapı için Google Chrome tarayıcısını kullanacaksınız. Chrome için web sürücüsünü yüklemek için:
Menü (3 nokta) >Yardım > Google Chrome Hakkında sayfasını ziyaret ederek kullandığınız tarayıcının sürümünü kontrol edin .
Google Chrome Sayfası Hakkında
Tarayıcının sürümünü not edin.
Chrome Tarayıcı Sürümü
ChromeDriver – Chrome için WebDriver’ın indirmeler sayfasını ziyaret edin .
ChromeDriver’ın mevcut sürümlerinden sürüm numaranızla eşleşen seçeneği belirleyin.
Web Sürücüsü Chrome
Dosyayı işletim sisteminize göre seçin ve indirin.
Web Sürücüsü Chrome Windows İndirme
İndirilen dosyayı ayıklayın ve Python programınızla aynı klasöre yerleştirin. Bu, kodlama sırasında yolu ayarlamada yardımcı olacaktır.
Bir Web Sayfasının Herhangi Bir Yönünü Otomatikleştirmek İçin Kod Nasıl İncelenir?
Selenium ve Python kullanan herhangi bir web otomasyon süreci için, web ve teknolojileri hakkında temel bir anlayışa sahip olmak çok önemlidir. İlk adım, HTML’ye giriş yapmak ve ardından Basamaklı Stil Sayfalarını (CSS) anlamaktır . Kimlikler ve sınıflar kavramına burada aşina olacaksınız.
Kimlikler ve sınıflar, sırasıyla bir öğeye veya öğe kümesine (etiketler) verilen benzersiz adlardır. Bunları kullanarak gerekli öğeyi bulursunuz ve Python programına onu özel olarak hedeflemesini söylersiniz. Kodu incelemek ve profil resmini bulmak için:
Instagram hesabının web sayfasını açın.
Tarayıcı Menüsü > Diğer Araçlar > Geliştirici Araçları’na tıklayın veya Geliştirici Araçları görünümünü etkinleştirmek için Ctrl + Shift + I kısayolunu kullanın .
Geliştirici Araçları Chrome
Pencerenin sol köşesindeki Öğe Seçici aracını (fare imleci simgesi) tıklayın ve seçin ve bu kod bölümüne atlamak için web sayfasının herhangi bir bölümünün üzerine getirin.
Öğe Seçici Geliştirici Araçları
Herkese açık bir hesabın ve özel bir hesabın profil resimlerinin farklı şekilde ayarlandığını unutmamak önemlidir. İmleci herkese açık bir hesabın profil resminin üzerine getirin. Genel Profil için sınıf niteliği _aa8j’dir .
Genel Profil Resmi Sınıfı
Özel bir profil için yukarıdaki adımı tekrarlayın. sınıf özelliği _aadp’dir .
Özel Profil Resmi Sınıfı
Herhangi bir web sayfasını anlamak ve otomasyon için herhangi bir öğeyi hedeflemek için bu prosedürü kullanabilirsiniz.
Instagram Profil Resmi İndiricisi Nasıl Oluşturulur
İndiriciyi oluşturmak için bu adımları izleyin.
Gerekli modülleri Python ortamına aktarın.
from selenium import webdriver
import time
import urllib.request
Giriş işlevini kullanarak, profil resmi indirilecek olan profilin kullanıcı adını alın ve bunu username adlı bir değişkende saklayın.
#entering the username of the profile whose profile picture is to be downloaded
username=input(“Enter the username of the profile: “)
Bir nesne oluşturarak ve dosya sistemi yolunu geçerek web sürücüsünü başlatın.
#creating an object of chromedriver
cd=’chromedriver.exe’
Google Chrome tarayıcısını başlatmak için webdriver.Chrome işlevini kullanın .
#open google chrome browser
driver = webdriver.Chrome(cd)
Herhangi bir Instagram hesabının URL’si https :// www biçimindedir . instagram . com / ardından kullanıcı adı. Profilin URL’sini şu şekilde ayarlayın:
#setting the url
url=’https://www.instagram.com/’
url_p=url+user_h
Ziyaret edilecek Instagram profilinin tam URL’sini get() işlevine iletin.
#open the profile
driver.get(url_p)
Web sayfasının tamamen yüklenmesi için isteğe bağlı bir önerilen gecikme ayarlayın.
#delay for page content loading
time.sleep(5)
Profil resminin genel bir profile ait olup olmadığını bulmak ve belirlemek için try-except bloğunu kullanın. Bu, XPath ifadesindeki class niteliği kullanılarak yapılır. Başarısızlık durumunda, özel bir hesabın profil resmini aramak için hariç bloğunu kullanın.
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() işlevini kullanarak görüntünün src niteliğini elde edin. Bu, görüntünün bağlantısını döndürür.
#store the download link of image
img_link=image.get_attribute(‘src’)
İndirilen dosyanın yolunu ve uzantısını ayarlayın. Örneğin dosya sisteminizin D: sürücüsüne indirilecek resmi JPG formatında ayarlayabilirsiniz.
#set path of downloaded file
path=”D:\”+username+”.jpg”
Kaynak olarak profil resminin bağlantısını ve hedef olarak yerel sistem klasör yolunu urlretrieve() işlevine ileterek resmi indirin.
#downloading image to the required destination
urllib.request.urlretrieve(img_link,path)
Klasörü ziyaret edin ve profil resminin indirildiğini görün. İsteğe bağlı olarak, profil resminin indirildiği yolu da görüntüleyebilirsiniz.
#displaying the path of the profile pic downloaded
print(“The profile pic has been downloaded at: “+path)
Python Kullanan Instagram Profil Resmi İndiricisi için Son Kaynak Kodu
Hepsini bir araya getirdiğinizde şunları elde edersiniz:
#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’)
Web Otomasyonu Uygulamaları
Otomasyon yalnızca zamandan, paradan ve emekten tasarruf etmenize yardımcı olmakla kalmaz, aynı zamanda hataları önlerken görevlerin tamamlanmasını da garanti eder. Farklı web sitelerinin oturum açmasını otomatikleştirmek, bulut sunucuları yedeklemesi yapmak, mesajları planlamak, sosyal medya platformlarında doğum günleri dilemek, gönderiler oluşturmak, tweet’ler yayınlamak ve daha pek çok şey için bu tekniği kullanın.