- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Bu proje, bir e-ticaret sitesindeki bir ürünün fiyatını günlük olarak takip etmeyi, veritabanına kaydetmeyi ve fiyat değişimini görselleştirmeyi hedefler.
requests, BeautifulSoup, sqlite3, pandas, matplotlib, OOP, loggingsqlite3 ve OOP)Amaç: Fiyat verilerini kalıcı ve yapılandırılmış bir şekilde saklamak.
Sınıf Oluşturma: DatabaseManager adında bir sınıf oluşturun. Bu sınıf, yapıcı metodunda (__init__) veritabanı bağlantısını (sqlite3.connect()) kursun.
Tablo Oluşturma: Veritabanında fiyatlar adında bir tablo oluşturun. Tablonun şu sütunları içermesi gerekir:
tarih (TEXT)
urun_adi (TEXT)
fiyat (REAL)
site (TEXT)
requests ve BeautifulSoup)Amaç: Belirlenen e-ticaret sitesinden güncel fiyatı programatik olarak almak.
Sınıf Oluşturma: Scraper adında bir sınıf oluşturun.
fiyat_cek Metodu: Bu metoda, takip edilecek ürünün URL'sini girdi olarak verin.
HTML Çekme: requests.get(URL) kullanarak sayfanın HTML içeriğini alın.
Ayrıştırma (Parsing): BeautifulSoup kullanarak HTML'i ayrıştırın.
Fiyatı Bulma: Fiyatın bulunduğu HTML etiketini (genellikle <span> veya <div>) inceleyerek doğru CSS seçicisini veya ID'yi bulun ve fiyatı çekin. (İpucu: Sayfadaki fiyat metnini temizleyip, float (REAL) bir sayıya dönüştürmeyi unutmayın.)
Kaydetme: Çekilen fiyatı, DatabaseManager sınıfının kaydet metodunu çağırarak veritabanına yazın.
pandas ve numpy)Amaç: Ham veriden anlamlı özetler çıkarmak.
Veriyi Yükleme: pd.read_sql() kullanarak veritabanındaki tüm fiyat verilerini bir pandas DataFrame'e yükleyin.
Ortalama Hesaplama: DataFrame üzerinde .groupby() ve .mean() kullanarak haftalık ortalama fiyatları hesaplayın.
Fiyat Farkı: numpy ile son fiyatın (bugünün fiyatı) tüm zamanların en düşük fiyatına göre yüzde kaç yüksek veya düşük olduğunu hesaplayın.
matplotlib)Amaç: Fiyat hareketini görsel olarak sunmak.
Grafik Çizimi: matplotlib.pyplot.plot() kullanarak X eksenine tarih, Y eksenine fiyat gelecek şekilde bir çizgi grafik oluşturun.
Özelleştirme: Grafiğe başlık (plt.title), eksen etiketleri ve bir ızgara (plt.grid(True)) ekleyin.
Kaydetme: Grafiği .png formatında bir dosyaya kaydedin.
"Kendi Projenizi Yazın!
Bu yapıyı bir rehber olarak kullanın, ancak kodları kendi mantığınızla yazın. Unutmayın, en iyi öğrenme, bir hatayla karşılaştığınızda onu kendiniz çözmektir. Tüm modülleri birleştirerek bu projeyi tamamladığınızda, artık sadece bir Python kullanıcısı değil, bağımsız bir Python geliştiricisi olacaksınız. Başarılar!"
Yorumlar
Yorum Gönder