Python - Request Modülü ve Bs4 Anlık Olarak Veriyi Çekmiyor Mu?

Merhaba,

Şu şekilde, belirtilen url adreslerinden belirtilen title kısmından veri çeken bir kodum var;

from tkinter import *
from datetime import datetime as dtm
from bs4 import BeautifulSoup as Bf
import requests as rq

class Application(object):

    def __init__(self):

        self.main()
        self.veri_cek()

    def main(self):

        self.pencere1 = Tk()
        self.pencere1.title("KRIPTO PARALAR VERI CEKME")
        self.pencere1.resizable(FALSE, FALSE)

        self.kripto_isimleri = ["BTC","ETH","SUSHI","SUSHIUP","AAVE","AAVEUP"]
        self.satir_sayisi = 1

        for self.i in self.kripto_isimleri:

            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir_sayisi, column=1)
            self.satir_sayisi+=1

        self.satir_sayisi+=1

        self.verileri_guncelle = Button(self.pencere1, text="VERİLERİ GÜNCELLE", command=self.veri_cek)
        self.verileri_guncelle.grid(row=self.satir_sayisi, column=1, columnspan=2)

        self.satir_sayisi+=1
        
        self.guncelleme_zamani = Label(self.pencere1, text=dtm.now())
        self.guncelleme_zamani.grid(row=self.satir_sayisi, column=1, columnspan=2)

    def veri_cek(self):

        self.r1 = rq.get('https://www.binance.com/en/trade/BTC_BUSD')
        self.r2 = rq.get('https://www.binance.com/en/trade/ETH_BUSD')
        self.r3 = rq.get('https://www.binance.com/en/trade/SUSHI_USDT')
        self.r4 = rq.get('https://www.binance.com/en/trade/SUSHIUP_USDT')
        self.r5 = rq.get('https://www.binance.com/en/trade/AAVE_USDT')
        self.r6 = rq.get('https://www.binance.com/en/trade/AAVEUP_USDT')

        self.source1 = Bf(self.r1.content,"lxml")
        self.source2 = Bf(self.r2.content,"lxml")
        self.source3 = Bf(self.r3.content,"lxml")
        self.source4 = Bf(self.r4.content,"lxml")
        self.source5 = Bf(self.r5.content,"lxml")
        self.source6 = Bf(self.r6.content,"lxml")

        self.etiket_1 = self.source1.title
        self.etiket_2 = self.source2.title
        self.etiket_3 = self.source3.title
        self.etiket_4 = self.source4.title
        self.etiket_5 = self.source5.title
        self.etiket_6 = self.source6.title

        self.deger_1 = self.etiket_1.text
        self.deger_2 = self.etiket_2.text
        self.deger_3 = self.etiket_3.text
        self.deger_4 = self.etiket_4.text
        self.deger_5 = self.etiket_5.text
        self.deger_6 = self.etiket_6.text

        self.cekilen_veriler = [self.deger_1, self.deger_2, self.deger_3, self.deger_4, self.deger_5, self.deger_6]

        self.satir_sayisi = 1

        for self.i in self.cekilen_veriler:

            self.etiket = Label(self.pencere1, text=self.i, width=30)
            self.etiket.grid(row=self.satir_sayisi, column=2)
            self.satir_sayisi+=1

        self.satir_sayisi+=2

        self.guncelleme_zamani = Label(self.pencere1, text=dtm.now())
        self.guncelleme_zamani.grid(row=self.satir_sayisi, column=1, columnspan=2)

app = Application()
mainloop()

Verileri güncelle butonuna bastığım zaman tüm fonksiyonu yeniden çalıştırıyor fakat anlık olarak veriyi çekmediğini düşünüyorum. Bunu bir döngüde konsol üzerinden de çalıştırdım. Sürekli aynı veriyi çekiyor.

Site içeriğindeki farklı bir alandan class etiketini vererek denedim yine olmadı.

Nasıl bir çözüm üretebiliriz, her yenileme yapıldığında anlık güncel veriyi getirebilmesi için?

efm şimdi sayfaya girince belli bi değerden kuru başlatıyor bu değer de 3 5 dk da bi değişiyordur(neye göre değiştiriyor bunu bilmiyotum ) ama canlı kuru çekmek için websocketbağlantısı kurmanız gerekecek . :slight_smile:


image

1 Beğeni