Merhabalar küçük bir projem var bir siteden fiyat verilerimi çekiyorum bir dosyaya yazdırıyorum siteyi yeniliyorum sonra tekrar dosyaya yazdırıyorum fiyatları dosyadan çekip karşılaştırıyorum ben burada karşılaştırmada takılı kaldım lütfen yardım edin

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
import pandas as pd
import numpy as np
import os
import fnmatch


chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--incognito")
chromeOptions.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chromeOptions)
driver.delete_all_cookies()
driver.get("https://www.teknoker.com/bilgisayar-bilesenleri")
  
def veri_cekme(): 
  
          time.sleep(3)       
          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)

                         csv_writer = DictWriter(file,headers)                 
                         csv_writer.writerow({
                              "Ürün":urun_isim,
                              "Fiyat":veri,
                              })
    
          time.sleep(3)       
          driver.refresh()     
          with open("urun2.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,
                              })
             
def veri_okuma():       
          with open("urun.csv") as f1, open("urun2.csv") as f2:            
               for fiyatlar in f1:   
                          satir2 = fiyatlar.strip()
                          satir3 = satir2.split(",")
                          if satir3 == ['']: 
                              del satir3
                          else:                   
                              satir4 = satir3[1]
                              isim = satir3[0]
                              veri2 = int(satir4)                           
               for fiyatlar2 in f2:
                          satir2 = fiyatlar2.strip()
                          satir3 = satir2.split(",")
                          if satir3 == ['']: 
                              del satir3
                          else:                   
                              satir4 = satir3[1]
                              isim = satir3[0]
                              veri3 = int(satir4)        
veri_okuma()

Neye Göre Karşılaştırıyorsun ? ( Yüksek fiyat , Düşük Fiyat ,Fiyat Farkı , Farklı ürün)
kod tek siteden aynı fiyatları ve ürünleri çekiyor.

İkinci çektiğim veri ilk çektiğimden küçükmü diye kontrol edicem

İki sözlük oluştur for ların içinde isim ve veri2 diğerinde de isim ve veri3 e sözlüklere ekle. Sonra sözlükleri karşılaştırırsın.

with open(“urun.csv”) as f1, open(“urun2.csv”) as f2:

    for fiyatlar in f1:   
            satir2 = fiyatlar.strip()
            satir3 = satir2.split(",")
            if satir3 == ['']: 
                    del satir3
            else:                   
                satir4 = satir3[1]
                isim = satir3[0]
                veri2 = int(satir4) 
                urun = {
                        "urun_bilgileri": {
                        "isim": isim,
                        "fiyat": veri2,
                                
                            }
                        }  
                            
    for fiyatlar2 in f2:
            satir2 = fiyatlar2.strip()
            satir3 = satir2.split(",")
            if satir3 == ['']: 
                    del satir3
            else:                   
                    satir4 = satir3[1]
                    isim = satir3[0]
                    veri3 = int(satir4)
                                
                    urun2 = {
                            "urun_bilgileri2": {
                            "isim2": isim,
                            "fiyat2": veri3,
                                            
                                        }
                            }
    if urun["urun_bilgileri"]["fiyat"] == urun2["urun_bilgileri2"]["fiyat2"]:
        print(f"{urun['urun_bilgileri']['isim'],urun['urun_bilgileri']['fiyat']} üründe indirim var: {urun2['urun_bilgileri2']['fiyat2']}")

Böyle mi demiştiniz?
@sonsuz

Eh buna benzer ama bir for daha açman gerekir sanki ürünleri tek tek karşılaştırma için. Sözlüklere kaydediyor mu kontrol ettin mi?

Urunbilgileri ve urunbilgileri2 gereksiz çünkü hep üstüne kaydeder.

Doğrudan ürün isimleri anahtar, fiyatları da değer olsun.

@sonsuz
3. for döngüsünü nasıl yapıcam? sözlüklere kaydetmiyor

Urunbilgileri ve urunbilgileri2 gereksiz çünkü hep üstüne kaydeder.Doğrudan ürün isimleri anahtar, fiyatları da değer olsun.

bu dediğini yaparım sıkıntı yok

Şu şekilde yaparsan istediğin iki sözlüğü elde etmiş olursun.

2 Beğeni

vaktinizi ayırıp yardım ettiğiniz için çok teşekkür ederim iyi ki varsınız :smiling_face:

1 Beğeni