Merhaba,
`from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
import sqlite3
from datetime import datetime
import time
fon_kodlari = ["YAS", "AFT", "IPJ", "BST", "TAU", "YZH", "ADP", "YCP", "IIH", "HKR", "IDH", "TTE", "BST", "BST"]
conn = sqlite3.connect('fon_verileri.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS fon_verileri (
fon_kodu TEXT,
tarih DATE,
rakam REAL,
PRIMARY KEY (fon_kodu, tarih)
)
''')
new_data = []
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
for fon_kodu in fon_kodlari:
print(f"{fon_kodu} için veri çekiliyor...")
try:
driver.get("https://www.tefas.gov.tr/FonAnaliz.aspx?FonKod=" + fon_kodu)
# Sayfanın tam olarak yüklenmesini bekleyelim
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, 'MainContent_RadioButtonListPeriod_7')))
# Son 5 yıl butonuna tıklama
try:
button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, 'MainContent_RadioButtonListPeriod_7')))
# JavaScript ile tıklama
driver.execute_script("arguments[0].click();", button)
except Exception as e:
print(f"Son 5 yıl butonuna tıklama hatası: {fon_kodu}, hata: {e}")
continue
# Sayfanın yüklenmesi için kısa bir bekleme süresi
time.sleep(5)
# HTML içeriğini alma
soup = BeautifulSoup(driver.page_source, features="html.parser")
js_text = soup.find_all('script', type="text/javascript")
kacinci = -1
for fiyat in range(len(js_text)):
if len(js_text[fiyat].contents) == 0:
continue
if js_text[fiyat].contents[0].find("chartMainContent_FonFiyatGrafik") > 0:
kacinci = fiyat
break
if kacinci == -1:
print(f"Uygun veri bulunamadı: {fon_kodu}")
continue
try:
tarih_rakam = js_text[kacinci].contents[0].split("categories")
tarih = tarih_rakam[1].split("]")[0].split("[")[1].split(",")
rakam = tarih_rakam[1].split("[")[4].split("]")[0].split(",")
# Her bir tarih ve fiyatı ayrı ayrı listeye ekliyoruz
for i in range(len(tarih)):
new_data.append((fon_kodu, datetime.strptime(tarih[i].strip('\"'), '%d.%m.%Y').date(), float(rakam[i])))
except IndexError as e:
print(f"Veri ayrıştırma hatası: {fon_kodu}, hata: {e}")
except Exception as e:
print(f"Veri çekme hatası: {fon_kodu}, hata: {e}")
Yeni verileri veri tabanına ekleme
if new_data:
cursor.executemany('''
INSERT OR IGNORE INTO fon_verileri (fon_kodu, tarih, rakam)
VALUES (?, ?, ?)
''', new_data)
conn.commit()
print("Veri başarıyla veri tabanına kaydedildi.")
else:
print("Yeni veri bulunamadı, veri tabanı güncellenmedi.")
Bağlantıyı kapatma
conn.close()
driver.quit()
`
bu şekilde kodu düzenledim fakat butonu bulamıyor. 
Nerede hata yapıyorum acaba