145187-648c38d44fb1e.jpg

 

Aşağıdaki kod bloğu , döviz kurlarını çekip görsel bir şekilde kullanıcıya sunan bir uygulama oluşturur. İşleyişini aşağıdaki adımlarla açıklayabilirim:

  1. requests ve BeautifulSoup kütüphaneleri içe aktarılır.
  2. tkinter ve ttk modülleri içe aktarılır. Bu, GUI (Graphical User Interface - Grafiksel Kullanıcı Arayüzü) oluşturmak için kullanılır.
  3. Döviz verilerinin alınacağı web sayfasının URL'si belirlenir.
  4. requests.get() işlevi kullanılarak web sayfası içeriği alınır.
  5. BeautifulSoup kullanılarak web sayfasının içeriği ayrıştırılır.
  6. market_data değişkeni, döviz verilerinin bulunduğu bölümü temsil eden HTML etiketi bulunur.
  7. Eğer market_data değeri None ise, piyasa verileri bulunamadığına dair bir mesaj yazdırılır ve program sonlandırılır.
  8. tkinter kullanılarak bir pencere oluşturulur ve başlığı "Döviz Kuru Takip" olarak ayarlanır.
  9. ttk.Treeview nesnesi oluşturulur ve sütun başlıkları tanımlanır.
  10. market_data içindeki döviz verileri, döngü yardımıyla ayrıştırılır ve Treeview nesnesine eklenir.
  11. Treeview nesnesi ekrana yerleştirilir.
  12. Tkinter penceresi çalıştırılır ve döviz kurları kullanıcıya gösterilir.

Bu kod, döviz kurlarını çeken ve kullanıcıya gösteren basit bir döviz takip uygulamasıdır.

import requests
from bs4 import BeautifulSoup
import tkinter as tk
from tkinter import ttk

# Döviz verilerinin alınacağı web sayfası URL'si
url = "https://www.doviz.com/"

# Web sayfasından verileri çekme ve ayrıştırma işlemleri
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
market_data = soup.find("div", class_="market-data")

if market_data is None:
    print("Piyasa verileri bulunamadı.")
    exit()

# Tkinter penceresi oluşturma
root = tk.Tk()
root.title("Döviz Kuru Takip")

# Treeview nesnesi oluşturma ve sütunları tanımlama
tree = ttk.Treeview(root)
tree["columns"] = ("Alış", "Satış","Değişim")
tree.heading("#0", text="Döviz")
tree.heading("Alış", text="İşlem Fiyatı")
tree.heading("Satış", text="Değişim Oranı")
tree.heading("Değişim", text="Değişim Fiyatı")

# Web sayfasından çekilen verileri Treeview nesnesine ekleme
for row in market_data.find_all("div", class_="item"):
    name = row.find("span", class_="name").text.strip()
    alis = row.find("span", class_="value")
    degisim = row.find("div", class_="change-amount")
    if alis is None:
        alis = ""
    else:
        alis = alis.text.strip()
    satis = row.find("div", class_="change-rate")
    if satis is None:
        satis = ""
    else:
        satis = satis.text.strip()
   

    if degisim is None:
       degisim = ""
    else:
       degisim = degisim.text.strip()
    tree.insert("", "end", text=name, values=(alis, satis, degisim))

# Treeview nesnesini ekrana yerleştirme
tree.pack()

# Tkinter penceresini çalıştırma
root.mainloop()