Python veri çekme ve kontrol etme nasıl yapılır?

ramazan_slmn

Femtopat
Katılım
6 Nisan 2023
Mesajlar
7
Daha fazla  
Cinsiyet
Erkek
Veri çekme ve kontrol etme yapıyorum.
Siteden veriyi alıp dosyaya yazdırıyorsun sonra dosyadan tekrar çekip büyükmü küçükmü diye kontrol etmek istiyorum.
Ben büyük mü küçük mü kısmında takıldım nasıl devam edebilirim?
 

Dosya Ekleri

  • IMG-20230526-WA0002.jpg
    IMG-20230526-WA0002.jpg
    92,3 KB · Görüntüleme: 46
Son düzenleyen: Moderatör:
Kod:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from win10toast import ToastNotifier
from winotify import Notification,audio
from csv import DictWriter
from csv import DictReader
import csv
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--incognito")
#chromeOptions.add_argument("--headless")sayfayı açmaz
driver = webdriver.Chrome(chrome_options=chromeOptions)
driver.delete_all_cookies()
driver.get("https://www.teknoker.com/bilgisayar-bilesenleri")

def veri_cekme():
     while True:
          time.sleep(5)
          driver.refresh()
          time.sleep(5)         
          with open("urun.csv","w",encoding='utf8') as file:
               urun = driver.find_elements(By.CLASS_NAME, "card-product-inner")
               headers =["Ürün","Fiyat"]
               for urun_bilgi in urun:
                    urun_isim = urun_bilgi.find_element(By.CLASS_NAME,"title").text
                    fiyat = urun_bilgi.find_element(By.CLASS_NAME,"sale-price").text
                    
                    sayi = fiyat[:-6]
                    sayi2= sayi.replace(".","")
                    veri = int(sayi2)
                    
                    # yuzde = (veri2 * 25) / 100
                    # sonuc = veri2 - yuzde

                    csv_writer = DictWriter(file,headers)                 
                    csv_writer.writerow({
                         "Ürün":urun_isim,
                         "Fiyat":veri,
                         })
              
          #time.sleep(20)
                    
          with open("urun.csv", "r",encoding='utf8') as dosya:
              
               for fiyatlar in dosya:   
                    
                    satir2 = fiyatlar.strip()
                    satir3 = satir2.split(",")
                    if satir3 == ['']:
                         del satir3
                    else:                   
                         satir4 = satir3[1]
                         isim = satir3[0]
                         veri2 = int(satir4)
                        
                                            
                         if veri2 < 230:
                                                          
                              toast = Notification (app_id="Teknoker.com",
                              title="Sana Mesaj Var!",
                              msg= isim + " indirimde sakın kaçırma!!",
                              duration="short")

                              toast.set_audio(audio.Reminder, loop=False)
                              toast.add_actions(label="Siteye Git", launch="https://www.teknoker.com/bilgisayar-bilesenleri")

                              toast.show()
                              
                         else:
                              time.sleep(10)
                              print("İndirim yok!")
                                  
          time.sleep(5)                                   
        
veri_cekme()           
        
            
            
#mesaj gönderme
#         if fiyat < ikinci_fiyat:
        
     #          toast = Notification (app_id="Buraya Bak Biyo",
     #                       title="Sana Mesaj Var!",
     #                       msg= urun_isim + " indirimde sakın kaçırma!!",
     #                       duration="long")

     #          toast.set_audio(audio.Reminder, loop=False)
     #          toast.show()
              
#         else:
#               print("Ürün indirime girmemiştir.")

          
  
     #indirim hesaplama
     # yuzde = (fiyats * 25) / 100
    
     # if fiyats - yuzde < fiyats:
     #      print(urun_isim," ",fiyats)
     # else:
     #      print("Ürün indirime girmemiştir")
    
    
     # if fiyat < "28.471,91 TL":
     #      print(urun_isim," ",fiyat)
     # else:
     #      print("Ürün indirime girmemiştir")
 
Hocam string ile integer karşılaştırıyorsunuz çünkü. Fiyat karşılaştırma için insterseniz ikisinidie decimal olarak tanımlayıp (from decimal import decimal ile import etmelisiniz) öyle bir karşılaştırma yapabilirsiniz. Bu arada Selenium yerine Beautiful Soup kullanmanız daha mantıklı olmaz mı? Belirli aralıklarıla (örneği saatte bir gibi) request atarsınız istediğiniz sayfaya.
 
Hocam string ile integer karşılaştırıyorsunuz çünkü. Fiyat karşılaştırma için insterseniz ikisinidie decimal olarak tanımlayıp (from decimal import decimal ile import etmelisiniz) öyle bir karşılaştırma yapabilirsiniz. Bu arada Selenium yerine Beautiful Soup kullanmanız daha mantıklı olmaz mı? Belirli aralıklarıla (örneği saatte bir gibi) request atarsınız istediğiniz sayfaya.
Tamamdır başkan teşekkür ederim bi deniyeyim
 

Geri
Yukarı