Python Python Selenium ve Tkinter'da istediğim zaman başlatacağım şekilde nasıl ayarlarım?

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 *
from threading import *
import os
pencere = Tk()
pencere.geometry("400x300")
baslik = pencere.title("Proje")
pencere.deiconify()
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--incognito")
#chromeOptions.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chromeOptions)

def veri_cekme():

 i = 1
 while i <= 7:

 driver.get(f"https://www.teknoker.com/bilgisayar-bilesenleri?fiyat=hepsi&siralama=en-yeniler&pageing=3&list=0&k=&pageing={i}")
 driver.delete_all_cookies()

 time.sleep(1)
 driver.refresh()
 time.sleep(1)
 with open("urun.csv", "a+", 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)

 ad = urun_isim.replace(",", "")
 ad2 = str(ad)

 csv_writer = DictWriter(file, headers)
 csv_writer.writerow({
 "Ürün": ad2,
 "Fiyat": veri,
 })

 #time.sleep(1)
 #driver.refresh() uygulama kullanılacağı sıra açılacak

 with open("urun2.csv", "a+", 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)

 ad = urun_isim.replace(",", " ")
 ad2 = str(ad)

 csv_writer = DictWriter(file, headers)
 csv_writer.writerow({
 "Ürün":ad2,
 "Fiyat": veri,
 })

 i += 1

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 < len(b2)):
 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")
 toast.show()

 else:
 pass

 i += 1

def calistir():
 veri_cekme()
 veri_okuma_kontrol()
 os.remove("urun.csv")
 os.remove("urun2.csv")

def durdur():
 driver.quit()

def threading():
 t1=Thread(target=calistir)
 t1.start()

# def threading2():
# t1=Thread(target=durdur)
# t1.start()

dugme1 =Button(text="Programı Çalıştır",width=30,height=1,fg="white",
 bg="black",command=threading)

# dugme2 =Button(text="Programı Durdur",width=30,height=1,fg="white",
# bg="black",command=threading2)

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()

Merhaba, programımda kodlarımı istediğim zaman durdurup başlatmak istiyorum. Nasıl yapacağım?
 
Son düzenleyen: Moderatör:
Hocam action atamayı araştırabilirsiniz, action atadığınız duruma while döngüsü ile sleep eklersiniz. Action durumu bozulursa whiledan çıkar.
 

Technopat Haberler

Yeni konular

Geri
Yukarı