Bot & Sistem Otomasyonu
Açık Kaynak

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

PythonSeleniumPandasBeautifulSoup4RegexBSONChromeDriver

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ı

PythonSeleniumPandasBeautifulSoup4RegexBSONChromeDriver

Sistem Metrikleri

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

Bunu Neden İnşa Ettim?

"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

  • 01.Selenium'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
  • 02.Program adlarındaki parazit metadataları (burslar, süreler, indirim oranları) tespit edip temizleyen Regex tabanlı sanitasyon hattı
  • 03.Asenkron DOM güncellemelerinden kaynaklanabilecek race condition'ları önlemek için `staleness_of` kullanan otonom sayfalama döngüsü
  • 04.Veriyi 'ham' ve 'normalize edilmiş' olarak izole dizinlerde JSON, BSON, CSV ve Excel formatlarında eşzamanlı dışa aktarım