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:
if belirle şu olursa şunu yap diye o şekilde ayarlayabilirsin. Yani işlem yaparken arada durumu kontrol etmesini istemen gerekiyor.
 
Hocam action atamayı araştırabilirsiniz, action atadığınız duruma while döngüsü ile sleep eklersiniz. Action durumu bozulursa whiledan çıkar.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…