Arkadaşlar merhaba. Selenium ile Günlük Hisse Senedi Fiyatları | İş Yatırım sayfasından hisse verilerini çekiyorum. PyQt5 ile masaüstü program yapacağım. Sormak istediğim şu:
Masaüstü programı çalıştırdığımda anasayfa (main) açılacak. Program açıkken 5 dk da bir verileri çekip veritabanına otomatik kaydetmek istiyorum. Tabi bu arada başka pencerelerde de çalışma yapabilirim.
Pc saatine bakarak saat 10.00 da başlayıp 18.00 a kadar 5dk arayla verileri çekeceğim.
Şu şekilde verileri çektim. Aşağıdaki kodu bir fonksiyon olarak yazacağım ama sürekli çalışabilmesi için PyQT5 de nerede çağırmalıyım ?
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from time import sleep
driver = webdriver.Chrome(options=Options())
driver.get(‘Günlük Hisse Senedi Fiyatları | İş Yatırım’)
sleep(2)
tbody = driver.find_element(By.XPATH, ‘//*[@id=“DataTables_Table_0”]/tbody’)
rows = len(tbody.find_elements(By.XPATH, ‘//tr’))
for r in range(1,rows):
path = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(1) + ']'
hisseAdi = driver.find_element(By.XPATH, path).text
path1 = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(2) + ']'
hisseFiyat = driver.find_element(By.XPATH, path1).text.replace(".","")
hisseFiyat = hisseFiyat.replace(",",".")
path2 = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(3) + ']'
degisimYuzde = driver.find_element(By.XPATH, path2).text
path3 = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(4) + ']'
degisimPara = driver.find_element(By.XPATH, path3).text
path4 = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(5) + ']'
hacimPara = driver.find_element(By.XPATH, path4).text
path5 = '//*[@id="DataTables_Table_0"]/tbody/tr[' + str(r) + ']/td[' + str(6) + ']'
hacimAdet = driver.find_element(By.XPATH, path5).text
print(hisseAdi, hisseFiyat, degisimYuzde, degisimPara, hacimPara, hacimAdet)