İçeriğe geç
Tüm projeler
Bot & OtomasyonAçık kaynak

YÖK Atlas Üniversite Veri Kazıyıcı ve Normalleştirici

Resmi YÖK Atlas sistemi üzerinden dinamik üniversite tercih verilerini çıkaran, metinleri sanitize eden ve makine öğrenimi / veritabanı kullanımına hazır hale getiren otomatize veri hattı.

Teknoloji yığını

Diller
Çatılar & kütüphaneler

Performans & metrikler

  • DOM okuma işlemlerinin Selenium üzerinden değil, statik snapshot alınarak BeautifulSoup ile yapılması, satır iterasyonlarında I/O overhead'ini minimize eder
  • Veri tekilleştirme (drop_duplicates) ve kolon mutasyonlarının pandas üzerinden yürütülmesi, işlemlerin saf Python yerine vektörize C seviyesinde gerçekleşmesini sağlar

Neden geliştirdim?

YÖK Atlas platformundan üniversite yerleştirme verilerini toplamak, dinamik JavaScript sayfalama yapısı ve kirli string verileri (ör. isme entegre edilmiş burs oranları, eğitim süreleri) nedeniyle standart HTTP istekleriyle çözülemez bir problemdir. Bu engeli aşmak için hedeflenen endpoint'leri otonom olarak gezen, ham metinleri agresif bir Regex hattıyla temizleyen ve veriyi yapılandırılmış formatlarda derleyen bir scraping mimarisi inşa ettim.

Mimari & kararlar

Çıkarım (extraction) katmanı, DOM mutasyonlarını tetiklemek ve sayfalamayı yönetmek için Selenium WebDriver kullanır. AJAX yükleme durumları strict WebDriverWait ve ExpectedConditions metotlarıyla denetlenir. Ancak, WebDriver'ın yavaş IPC (Inter-Process Communication) çağrılarından kaçınmak için DOM parsing işlemi tamamen BeautifulSoup'a offload edilmiştir. Dönüşüm (transformation) katmanı, veriyi normalize etmek için re modülünü kullanırken, pandas kütüphanesi verinin tekilleştirilmesi ve bellek dostu bir şekilde çoklu formata (CSV, Excel, JSON, BSON) serileştirilmesi için kullanılmıştır.

Temel özellikler

  1. 01Selenium'un JS state yönetimi ile BeautifulSoup'un hızlı in-memory DOM ayrıştırma gücünü birleştiren hibrit kazıma mimarisi
  2. 02Program adlarındaki parazit metadataları (burslar, süreler, indirim oranları) tespit edip temizleyen Regex tabanlı sanitasyon hattı
  3. 03Asenkron DOM güncellemelerinden kaynaklanabilecek race condition'ları önlemek için staleness_of kullanan otonom sayfalama döngüsü
  4. 04Veriyi 'ham' ve 'normalize edilmiş' olarak izole dizinlerde JSON, BSON, CSV ve Excel formatlarında eşzamanlı dışa aktarım