Çözüldü Selenium ve tkinter'da uygulama çalıştırmak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

busra_ulukaya

Femtopat
Katılım
7 Haziran 2023
Mesajlar
8
Daha fazla  
Cinsiyet
Kadın
Python:
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 tkinter import *

pencere = Tk()
pencere.geometry("400x300")
baslik = pencere.title("Proje")


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?fiyat=hepsi&siralama=en-yeniler&pageing=3&list=0&k=&pageing=1")



def veri_cekme():
 
    time.sleep(3)
    driver.refresh()
    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)#uygulama kullanılacağı sıra süre arttırılacak
    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,
            })


s1 = {}
s2 = {}


def veri_okuma_kontrol():
    with open("urun.csv", encoding='utf8') as f1, open("urun2.csv", encoding='utf8') 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)
                s1[isim] = 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)
                s2[isim] = veri3

        b = s1.values()
        b2 = list(b)
        b3 = s1.keys()
        b4 = list(b3)


        c = s1.values()
        c2 = list(c)
        c3 = s1.keys()
        c4 = list(c3)

        i = 0
        while (i <= 23):
            if c2[i] < b2[i]:
                time.sleep(5)
                toast = Notification (app_id="Teknoker.com",
                             title="Sana Mesaj Var!",
                             msg= b4[i] + " indirimde sakın kaçırma!! "+ str(b2[i]) +" Fiyatından "+ str(c2[i]) +" Fiyatına düştü!",
                             duration="short")

                toast.set_audio(audio.Reminder, loop=False)
                toast.add_actions(label="Siteye Git", launch="https://www.teknoker.com/bilgisayar-bilesenleri")
                toast.show()
                #print(b4[i] + " indirimde sakın kaçırma!! "+ str(b2[i]) +" Fiyatından "+ str(c2[i]) +" Fiyatına düştü! ")
                i += 1

            else:
                pass
 
def calistir():           
    while True:
        veri_cekme()
        veri_okuma_kontrol()
        time.sleep(5)
    
def durdur():
    driver.close()
 
 
dugme1 =Button(text="Programı Çalıştır",width=30,height=1,fg="white",     
              bg="black",command=calistir)

dugme2 =Button(text="Programı Kapat",width=30,height=1,fg="white",
              bg="black",command=durdur)

dugme3 =Button(text="Pencereyi Kapat",width=30,height=1,fg="white",
              bg="black",cursor="X_cursor",command=pencere.quit)

dugme1.pack()
dugme2.pack()
dugme3.pack()
mainloop()

Bu kodlarda calistir butonuma tıklayıp uygulamayı çalıştırdıktan sonra diğer butonlara tıklayamıyorum. Ne yapmalıyım?
 
Son düzenleyen: Moderatör:

Technopat Haberler

Geri
Yukarı