Oxylabs’ın demo mağazasından (https://sandbox.oxylabs.io) oyun kartlarını toplayıp Excel’e kaydeden, log ve istatistikleri canlı gösteren masaüstü GUI uygulaması. Amaç: Platform → Kategori → Sayfa hiyerarşisini otomatik gezip; başlık, kategori(ler), fiyat, stok, puan (yıldız), açıklama ve URL’leri çıkarıp .xlsx olarak kaydetmek.
Özellikler
- ✅ GUI (Tkinter): Başlat/Durdur, otomatik/manuel Excel kaydı, log penceresi, canlı istatistikler
- ✅ Selenium (Headless/Normal): Görünür tarayıcı veya başlıksız mod
- ✅ Dinamik Keşif: Sol menüden platform ve alt kategorileri açıp listeleri otomatik toplar
- ✅ Sayfalama Desteği: Tüm sayfalardaki ürün kartlarını gezer
- ✅ Dayanıklı Seçiciler: Bekleme stratejileri ve hata toleransı (Timeout, StaleElement vb.)
- ✅ Excel Çıktısı (openpyxl): Otomatik sütun genişliği, filtreleme, sabit kolon düzeni
- ✅ Hızlı Özet/Analiz: Platform/kategori dağılımı, stok durumu ve basit fiyat istatistikleri
Arayüz
- Tarayıcı Modu: Normal (Tarayıcı Görünür) veya Headless (Tarayıcı Gizlidir Yani Görünmez)
- Otomatik Excel kaydet: Bittiğinde .xlsx otomatik yazılır
- Kayıt Yolu: İsterseniz çıktı yolunu önceden seçin
- Scraping Başlat: Süreç başlar; loglar ve istatistikler akar
- Durdur: Güvenli durdurma sinyali gönderir
- Excel Olarak Kaydet: Manuel kaydetme (otomatik kapalıysa faydalıdır)
Çalışma Sırasında -> Durum satırında anlık açıklamalar (örn. “Toplam 120 oyun işlendi”) -> Log penceresinde platform/kategori ilerleyişi ve uyarılar -> İstatistiklerde Toplam Oyun, Platform sayısı canlı güncellenir
Çıktı Yapısı
Çıktı dosyası: oxylabs_games_YYYYMMDD_HHMMSS.xlsx Sayfa adı: Games Sütunlar (sabit sırayla):
| Kolon | Açıklama |
|---|---|
| platform | Sol menüdeki platform adı |
| category | Seçilen alt kategori adı (yoksa “General”) |
| title | Ürün/Oyun başlığı |
| categories | Kart içi ek kategori etiketleri |
| price | Metin olarak fiyat (örn. 29.99 €) |
| rating | Yıldız sayısı (svg adedi) |
| stock_status | In stock / Out of stock vb. |
| description | Açıklama (kısaltılmış) |
| url | Ürün detayı URL’si |
| scraped_date | İşlenme tarihi/saat |
Mimari ve Akış ScraperGUI (Tkinter)
├─ Ayarlar (Headless, Otomatik Kayıt, Kayıt Yolu)
├─ Başlat/Durdur/Excel Kaydet
├─ Log + İstatistik paneli
└─ Thread -> OxylabsGameScraper.run_scraper()
├─ setup_driver() # Chrome + Options
├─ get_platforms_and_categories()
│ └─ Sol menü → platform & alt kategori keşfi
├─ scrape_category_games()
│ └─ pagination → product-card → extract_game_data()
├─ save_to_excel()
└─ analyze_scraped_data() # Konsol özeti
Önemli Metodlar
- get_platforms_and_categories(): Sol panelde SVG dropdown’ları açarak alt kategorileri listeler
- scrape_category_games(url, platform, category): Tüm sayfaları gezip kartlardan alanları toplar
- extract_game_data(card): Başlık, kategori(ler), fiyat, stok, rating, açıklama, URL çıkarır
- save_to_excel(filename): openpyxl ile düzenli .xlsx üretir
- analyze_scraped_data(): Platform/kategori/ fiyat/ stok kısa özeti