Yapay Zeka & Makine Öğrenmesi
Açık Kaynak

Jikan API Scraper: Hata Toleranslı ML Veri Seti Üreticisi

PythonPandasRequestsREST APIOS I/O

Makine öğrenmesi (ML) modellerini eğitmek amacıyla MyAnimeList veritabanını otonom olarak tarayan; exponential backoff ve düşük seviyeli disk I/O flush mekanizmalarına sahip, hata toleranslı veri hasadı (data harvesting) motoru.

Teknoloji Yığını

PythonPandasRequestsREST APIOS I/O

Sistem Metrikleri

Devasa veri setini tek seferde RAM'e yüklemek yerine 'chunked append' stratejisi kullanılarak memory ballooning (bellek şişmesi) riskinin sıfırlanması
Geçici HTTP yanıtı objelerinin işlendikten hemen sonra garbage collection'a bırakılmasıyla stabil bellek tüketimi
Thread bloklanmalarını önlemek için dinamik bekleme (sleep) sürelerinin API'nin anlık tepki durumuna göre hesaplanması

Bunu Neden İnşa Ettim?

"Makine öğrenmesi modelleri devasa ve yapılandırılmış veri setlerine ihtiyaç duyar, ancak Jikan gibi açık API'ler katı rate-limit'lere ve öngörülemeyen bağlantı kesintilerine sahiptir. Saatlerce sürebilecek veri çekme (scraping) operasyonlarında sıfır veri kaybı yaşamak ve veri mühendisliği pipeline'ları için otonom bir şekilde ham veri toplamak adına bu dayanıklı altyapıyı tasarladım."

Mimari & Kararlar

Script tamamen Python üzerinde koşar; ağ I/O operasyonları için `requests`, veri yapılandırması için `pandas` kullanır. Çekirdek döngü, HTTP 429 (Too Many Requests) ve 5xx sunucu hatalarını absorbe edebilmek için randomize jitter ile desteklenmiş 'exponential backoff' algoritması uygular. Uzun süren memory-bound işlemlerde veya olası işletim sistemi çökmelerinde (crash) veri bütünlüğünü garanti etmek için, her sayfa (pagination) dönüşünde dosya tanımlayıcıları (file descriptors) düşük seviyeli `os.fsync()` sistem çağrısıyla doğrudan diske yazılmaya (flush) zorlanır. Standart çıktı (stdout), eşzamanlı olarak çok kanallı loglama sistemine yönlendirilmiştir.

Temel Özellikler

  • 01.Randomize jitter eklenmiş exponential backoff algoritması ile agresif HTTP 429 rate-limit mitigasyonu
  • 02.İşletim sistemi seviyesinde I/O senkronizasyonu (`os.fsync`) ile disk yazma işlemlerinin anında kalıcılığını garanti etme
  • 03.ML 'feature engineering' süreçleri için optimize edilmiş, iki farklı derinlikte (ana metrikler vs. karmaşık entity ilişkileri) eşzamanlı CSV dışa aktarımı
  • 04.Ağ kopmalarını ve parse edilemeyen bozuk JSON yanıtlarını izole eden otonom hata kayıt (error & unsaved logging) mekanizması
Bu proje basit bir web scraper'dan ziyade, dayanıklı bir veri mühendisliği hattı (data ingestion pipeline) olarak kurgulanmıştır. İşletim sistemi seviyesinde disk senkronizasyonu (`fsync`) ve detaylı exception hiyerarşisi sayesinde, script API zaman aşımlarını, bağlantı sıfırlamalarını ve katı throttling limitlerini insan müdahalesine gerek kalmadan atlatır. Ana tablo ve detay tablosu (ilişkisel ağlar) şeklinde yapılan ayrım, toplanan verinin Pandas/Polars tabanlı model eğitim ortamlarına doğrudan (preprocessing yükü olmadan) entegre edilebilmesi için önceden optimize edilmiştir.