Selenium ile AJAX Verisi Alma Süreçleri ve En İyi Uygulamalar

0 Yanıt 1 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
Giriş ve Temel Kavramlar
Web otomasyonu ve veri kazıma alanında sıklıkla karşılaşılan AJAX (Asynchronous JavaScript and XML) yapısı, sayfa yüklenmeden arka planda veri alışverişi sağlayarak kullanıcı deneyimini artırır. Bu durum, geleneksel HTML parse yöntemleriyle veri toplamayı zorlaştırır; çünkü sayfa ilk yüklendiğinde ilgili veriler henüz DOM’da yer almayabilir. Bu noktada Selenium gibi etkileşimli araçlar devreye girer.

Ajax ile Dinamik İçerik ve Selenium’un Rolü
Selenium, tarayıcıyı gerçek anlamda kontrol ederek, sayfa üzerinde kullanıcı davranışlarını taklit eder. AJAX içeriği bu süreçte şu adımlarla alınabilir:
  • Sayfayı yükleme ve başlangıçta erişilemeyen içeriklerin yüklenmesini bekleme.
  • Belirli elementlerin DOM’da oluşmasını veya güncellenmesini bekleme.
  • Gerekirse, JavaScript kodları çalıştırarak belirli API çağrılarını tetikleme.

    Örneğin, WebDriverWait ve expected_conditions kullanmak, AJAX’in tamamlanmasını sağlamak için en yaygın yöntemdir.

    Kod örneği:
    KOD
    123456789101112131415161718  
    from selenium import webdriver  
    from selenium.webdriver.common.by import By  
    from selenium.webdriver.support.ui import WebDriverWait  
    from selenium.webdriver.support import expected_conditions as EC  
    
    driver = webdriver.Chrome()  
    driver.get('https://ornek-site.com/ajax-page')  
    
    [b]AJAX içeriğinin yüklenmesini bekle[/b]
    wait = WebDriverWait(driver, 10)  
    element = wait.until(EC.presence_of_element_located((By.ID, 'ajax-container')))  
    
    [b]İçeriği al ve işle[/b]
    ajax_verisi = element.text  
    print(ajax_verisi)  
    
    driver.quit()  
    


    Performans ve Optimizasyon İpuçları
    • Ajax çağrılarının hangi URL’lerle yapıldığını analiz etmek ve gerekirse doğrudan API çağrılarını taklit etmek (örneğin, requests ile).
    • Sayfa içeriği dinamik olarak güncellenirken, ilgili elementlerin oluşmasını veya güncellenmesini uygun bekleme fonksiyonlarıyla kontrol etmek.
    • Çok sayfalı veya karmaşık AJAX yapılarında, tarayıcı oturumunu optimize etmek ve gereksiz beklemeleri minimize etmek.


    Selenium ile AJAX içeriğine erişmek, dikkatli planlama ve uygun bekleme stratejileri ile oldukça etkili sonuçlar alınmasını sağlar. Bu yöntemler, özellikle modern web sitelerinin dinamik yapısında veri kazıma ve test otomasyonunu kolaylaştırır.
  • Yanıt vermek için giriş yapmış olmalısınız.

    Bu konuyu görüntüleyen kullanıcılar (Toplam: 3, Üyeler: 3, Misafirler: 0)
    Toplam: 3 (üyeler: 3, misafirler: 0)
    0 alıntı seçildi