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.
vaktinizi ayırıp yardım ettiğiniz için çok teşekkür ederim iyi ki varsınız