Python Selenium ile Görüntü Kaynağını Alma

Python ve Selenium Nedir?

Python, kullanım kolaylığı ve güçlü kütüphaneleri ile bilinen bir programlama dilidir. Veri analizi, web geliştirme, otomasyon ve makine öğrenmesi gibi birçok alanda aktif olarak kullanılır. Özellikle geliştiriciler arasında popüler olması, dilin sadeliği ve geniş topluluk desteğinden kaynaklanmaktadır. Python’un en etkili kütüphanelerinden biri olan Selenium ise web uygulamalarını otomatikleştirmek için kullanılır. Bu kütüphane, web tarayıcılarını kontrol etmenizi sağlar; böylece kullanıcı işlemine benzer şekilde web sayfalarında etkileşimde bulunabilirsiniz.

Selenium ile, formlar doldurabilir, butonlara tıklayabilir ve hatta sayfanın içeriğini çekebilirsiniz. Bu da özellikle veri madenciliği ve web scraping projelerinde oldukça faydalı hale gelir. Özellikle resim gibi medya içeriklerini almak istiyorsanız, Python ve Selenium kombinasyonu oldukça etkilidir. Bu yazıda, Selenium kullanarak bir web sayfasındaki resimlerin kaynaklarını (src) nasıl alabileceğinizi detaylı bir şekilde inceleyeceğiz.

Bunun yanı sıra, Selenium ile web tarayıcısını uzaktan kontrol etme, sayfa içeriğini alma ve çeşitli web işletim sistemlerinde otomasyon nasıl yapılır gibi konuları da ele alacağız. Ancak, önce Selenium kurulumundan ve temel çalışma prensiplerinden bahsedeceğiz.

Selenium Kurulumu ve Temel Kullanım

Selenium kurulumunu gerçekleştirmek için, sisteminizde Python’un yüklü olması gerekmektedir. Python’u yükledikten sonra, pip yardımıyla Selenium kütüphanesini kurabilirsiniz. Terminal veya komut istemcisine şu komutu yazmanız yeterli:

pip install selenium

Kurulumdan sonra, web tarayıcısını kontrol edebilmek için bir tarayıcı sürücüsüne ihtiyacınız olacak. Örneğin, Chrome için ChromeDriver gereklidir. ChromeDriver’ı indirmek için tarayıcı sürümünüze uygun olan sürümü indirin ve sisteminize uygun bir yere kaydedin. Aksi takdirde, uygulamanız düzgün çalışmayacaktır.

Şimdi temel bir Selenium örneği üzerinden geçelim. Aşağıdaki örnek kod, Chrome tarayıcısını açacak ve belirli bir URL’ye gidecektir:

from selenium import webdriver

driver = webdriver.Chrome(executable_path='path/to/chromedriver')

driver.get('http://example.com')

Burada, get() metodu ile belirtilen URL’ye gitmiş olduk. Artık sayfa açıldığında bu sayfanın içeriğine erişebiliriz.

Görüntü Kaynaklarını Alma

Görüntü kaynaklarını (src) almak için, öncelikle sayfanın içeriğini incelemek gerekiyor. Bir web sayfasındaki görüntülere <img> tag’leri ile ulaşılmaktadır. Bu etiketin ‘src’ niteliği, görüntünün kaynak (URL) adresini içerir. Aşağıdaki kod örneği ile sayfadaki tüm resimlerin kaynaklarını alabiliriz:

images = driver.find_elements_by_tag_name('img')
for image in images:
    print(image.get_attribute('src'))

Bu örnekte, find_elements_by_tag_name('img') metodu ile sayfadaki tüm görüntü etiketlerini alıyoruz. Daha sonra her bir görüntü için get_attribute('src') metodunu kullanarak kaynak adresini ekrana yazdırıyoruz.

Özellikle çok sayıda görüntü bulunan bir sayfadan veri çekerken bu yöntemi kullanmak oldukça pratiktir. Ayrıca, görüntülerin URL’lerini bir listeye veya veri yapısına kaydederek daha sonra kullanabilirsiniz. Örneğin:

image_sources = []
for image in images:
    image_sources.append(image.get_attribute('src'))

Burada, her bir resmin kaynak adresini image_sources listesine ekliyoruz. Böylece tüm resim kaynaklarına kolayca erişebilirsiniz.

Görselleri Filtreleme ve İleri Düzey Kullanım

Bir sayfada yüzlerce resim olabilir ve hepsi sizin için önemli olmayabilir. Bu nedenle, belirli kriterlere göre resimlerinizi filtreleyebilir ve sadece ilginç olanları alabilirsiniz. Örneğin, resimlerin genişlik veya yükseklik değerine göre filtreleme yapabilirsiniz:

for image in images:
    src = image.get_attribute('src')
    width = image.get_attribute('width')
    height = image.get_attribute('height')
    if width and height and int(width) > 100:
        print(src)

Bu örnekte, yalnızca 100 pikselden daha geniş olan resimlerin kaynaklarını alıyoruz. Bu tür filtrelemeler ile almak istediğiniz görüntüleri daha rahat bir şekilde seçebilirsiniz.

Selenium ile dinamik web sayfalarındaki görüntüleri almak için, zaman zaman sayfanın tam olarak yüklenmesini beklemeniz gerekebilir. Bu nedenle, Selenium’un bekleme işlevlerini kullanmak iyi bir yöntemdir. Örneğin, bir öğenin yüklenmesini beklemek için:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, 'img'))
)

Burada, belirtilen miktarda saniye boyunca belirtilen öğenin sayfada varlığını bekliyoruz. Bu şekilde, dinamik içeriklerin yüklenmesini sağlayabilirsiniz.

Sonuç

Python ve Selenium kullanarak bir web sayfasındaki görüntü kaynaklarını almak oldukça basittir. Bu yazıda, Selenium ile temel bir kurulumdan başlayarak, görüntülerin kaynak adreslerini nasıl alabileceğinizi ve bu süreçte nelere dikkat etmeniz gerektiğini öğrendik. Genişletilen örneklerle, görüntüleri filtrelemenin ve bekleme koşullarını kullanmanın önemine de değindik.

Görseller, veri madenciliği ve web scraping alanında önemli bir yer tutmaktadır. Selenium’un sunduğu esneklik sayesinde, web üzerindeki herhangi bir görüntüyü kolaylıkla alabilir ve projelerinizde kullanabilirsiniz.

Kendi projelerinizde deneyerek bu bilgileri pekiştirebilir ve geliştirmenin keyfini çıkarabilirsiniz. Unutmayın, her zaman yeni ve etkili yollar araştırmaya devam edin, çünkü teknoloji sürekli olarak gelişmektedir!

Scroll to Top