Python gerçek anlamda anlık veri çekme

Merhaba kendimce internetten veri çeken proje deniyorum. Şuan ki hedefim canlı altın kuru göstersen her hangi bir sitenin gram altının kaç TL olduğunu tkinter label’ına yazdırmak.

Ama bunu canlı olarak yapmasını istiyorum aynı sitelerdeki saniyelik değişim gibi.
Mümkün mü? Teşekkürler.

Sonsuz bir döngü oluşturursunuz, bu döngü her 10-15 saniyede bir kur fiyatı tutulan siteye gider o değeri alır ve kendinde tuttuğu değer ile değiştirir.

2 Beğeni

Kendinde tuttuğu değer ile değiştirir demişsiniz. Bu cümlede bir anlam aramam gerekiyor ? Altın değerini bir değişkene atama gibi ? Yoksa direkt print mi etmemi söylüyorsun.

Döngü içerisinde zaten altın değerini tutmuş olacaksınız. Haliyle döngü içerisinde her seferinde yeni değer alınacağı için zaten değişmiş olacak.

Tamam sağolun deneyeceğim.

Hocam bi bakarsanız iyi olur ya.

from tkinter import *
from tkinter import filedialog
import requests 
from bs4 import BeautifulSoup
import time

win=Tk()
win.geometry("700x350")

frame=Frame(win, width=300, height=300)
frame.grid(row=0, column=0, sticky="NW")

gumus=Label(win, text="Gumus : "+str(deger)+"", font='Arial 17 bold')
gumus.place(relx=0.26, rely=0.5, anchor=CENTER)
while True:
    url = "https://balbalblaablal.com"
    r = requests.get(url)
    soup = BeautifulSoup(r.content , "html.parser")

    veri = soup.find_all("div",{"class":"status-down"})#Bu istediğim verinin baba divi.

    #BURADAN AŞAĞI İSTEDİĞİM VERİYİ ÇEKEN KOD.
    for i in veri:
        deger = i.find_all("strong")
        for x in deger:
            altin=Label(win, text="Gram Altın : "+str(x.text)+"", font='Arial 17 bold')
            altin.place(relx=0.26, rely=0.5, anchor=CENTER)
            

    win.mainloop()

Tam mantığı kuramadım.

Döngü dışında boş bir label oluşturun. Labelin config adında bir methodu olacaktı. O methodun text parametresini döngü içerisinde değiştirin.

Döngü dışında label tanımlayın.
Döngü içinde labelin config methodunu çağırıp text parametresini değiştirin

Hocam şu tarz bir şey mi ?

boslabel=Label(win, text="", font='Arial 17 bold')

while True:
    url = "https://canlidoviz.com/altin-fiyatlari/gram-altin"
    r = requests.get(url)
    soup = BeautifulSoup(r.content , "html.parser")
    veri = soup.find_all("div",{"class":"status-down"})
    
    print("bir")
    
    for i in veri:
        deger = i.find_all("strong")
        for x in deger:
            boslabel.config(text=x.text)

        win.mainloop()

Hocam aslında sorunu söyliyeyim gözlemlerim sonucu. Win.mainloop sıkıntılı
win.mainloop while döngüsü dışında kalsa tkinter çalışmıyor. İçeri alsam bir kere çalışıyor.
Tkinterin kendini yeniden başlatması lazım o sırada hemencicik.

mainloop methodunu döngü dışında kullanın.


....
Döngü:
   .....
mainloop()

Ayrıca Thread sınıfının tkinter ile kullanımına da bir göz atın

1 Beğeni