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
Performans & metrikler
- DOM okuma işlemlerinin Selenium üzerinden değil, statik snapshot alınarak
BeautifulSoupile yapılması, satır iterasyonlarında I/O overhead'ini minimize eder - Veri tekilleştirme (
drop_duplicates) ve kolon mutasyonlarınınpandasü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
- 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
- 02Program adlarındaki parazit metadataları (burslar, süreler, indirim oranları) tespit edip temizleyen Regex tabanlı sanitasyon hattı
- 03Asenkron DOM güncellemelerinden kaynaklanabilecek race condition'ları önlemek için
staleness_ofkullanan otonom sayfalama döngüsü - 04Veriyi 'ham' ve 'normalize edilmiş' olarak izole dizinlerde JSON, BSON, CSV ve Excel formatlarında eşzamanlı dışa aktarım