Merhaba,
Uzun süredir birkaç ürünün fiyatını takip edip "ne zaman düşecek" diye elle kontrol etmekten sıkılmıştım. Basit bir Python betiğiyle başladım, sonra iş büyüdü ve düzgün bir web uygulamasına dönüştü. Açık kaynak yaptım, belki işinize yarar.
Ne yapıyor?
Ürün bağlantısını yapıştırıyorsun, gerisini o hallediyor:
Python 3.12 + Flask, PostgreSQL, Redis. Veri çekme Playwright ile. Fiyat okuma 4 katmanlı: JSON-LD → sayfaya gömülü uygulama durumu → meta etiketleri → CSS seçicileri; yani site tasarımı değişince hemen kırılmıyor. Arka plan kontrolleri ayrı worker sürecinde, Redis kilidiyle. Docker Compose ile tek komutla ayağa kalkıyor. 268 otomatik test, CI kurulu.
Güvenliğe özellikle vakit ayırdım çünkü herkese açık kayıt olan bir uygulama: Argon2id parola, TOTP iki adımlı doğrulama, kullanıcı sırları veritabanında şifreli, katı CSP, CSRF ve SSRF savunması (DNS pinning dahil), oran sınırlama. Detayı repoda GUVENLIK.md'de.
Dürüst olmam gereken kısım
Trendyol, Hepsiburada ve Amazon veri merkezi IP'lerinden gelen otomatik erişimi engelliyor. Sunucuya kurup bu üçünü takip etmeye çalışırsanız büyük ihtimalle "güvenlik doğrulaması" sayfasına takılırsınız. Bu bir hata değil, onların bot koruması.
Gizlemek yerine mimariye çözüm koydum: .env'den konut proxy tanımlanabiliyor, kontrol aralığı seyreltilebiliyor. JSON-LD sunan mağazalarda sorunsuz çalışıyor — fiyat, stok, satıcı, para birimi doğru okunuyor.
Github detaylı bilgi ve indirme linki için tıkla.
Uzun süredir birkaç ürünün fiyatını takip edip "ne zaman düşecek" diye elle kontrol etmekten sıkılmıştım. Basit bir Python betiğiyle başladım, sonra iş büyüdü ve düzgün bir web uygulamasına dönüştü. Açık kaynak yaptım, belki işinize yarar.
Ne yapıyor?
Ürün bağlantısını yapıştırıyorsun, gerisini o hallediyor:
- Hedef fiyat alarmı — belirlediğin fiyatın altına inen ilk anda bildirim. Sürekli spam yok.
- Fiyat geçmişi — grafik, en düşük/en yüksek/ortalama fiyat, dönemsel değişim yüzdesi
- Stok takibi — tükenen ürün yeniden stoğa girince haber veriyor
- Buybox takibi — satıcıysan: buybox'ı kaybettiğin/kazandığın anı gösteriyor, rakip dağılımını raporluyor
- 4 bildirim kanalı — Telegram, e-posta, Discord/Slack webhook, telefona push
- Etiketleme, filtreleme, CSV/Excel dışa aktarım
- Çok kullanıcılı — herkes kendi listesini yönetiyor
- PWA — telefona uygulama gibi kurulabiliyor
Python 3.12 + Flask, PostgreSQL, Redis. Veri çekme Playwright ile. Fiyat okuma 4 katmanlı: JSON-LD → sayfaya gömülü uygulama durumu → meta etiketleri → CSS seçicileri; yani site tasarımı değişince hemen kırılmıyor. Arka plan kontrolleri ayrı worker sürecinde, Redis kilidiyle. Docker Compose ile tek komutla ayağa kalkıyor. 268 otomatik test, CI kurulu.
Güvenliğe özellikle vakit ayırdım çünkü herkese açık kayıt olan bir uygulama: Argon2id parola, TOTP iki adımlı doğrulama, kullanıcı sırları veritabanında şifreli, katı CSP, CSRF ve SSRF savunması (DNS pinning dahil), oran sınırlama. Detayı repoda GUVENLIK.md'de.
Dürüst olmam gereken kısım
Trendyol, Hepsiburada ve Amazon veri merkezi IP'lerinden gelen otomatik erişimi engelliyor. Sunucuya kurup bu üçünü takip etmeye çalışırsanız büyük ihtimalle "güvenlik doğrulaması" sayfasına takılırsınız. Bu bir hata değil, onların bot koruması.
Gizlemek yerine mimariye çözüm koydum: .env'den konut proxy tanımlanabiliyor, kontrol aralığı seyreltilebiliyor. JSON-LD sunan mağazalarda sorunsuz çalışıyor — fiyat, stok, satıcı, para birimi doğru okunuyor.
Github detaylı bilgi ve indirme linki için tıkla.