Daha önce Google Finans'tan dolar/euro kuru çekmiştik. Aynı teknik, kripto para fiyatları için de işe yarar — çünkü birçok kripto para borsa sitesi (CoinGecko hariç) HTML yapısını karmaşıklaştırıp veriyi scraping'e karşı zorlaştırırken, Google Finans temiz ve tutarlı bir yapı sunar.
Bitcoin Fiyatını Çekmek
import requests
from bs4 import BeautifulSoup
def fiyat_cek(url: str) -> str:
sayfa = requests.get(url)
html = BeautifulSoup(sayfa.content, "html.parser")
fiyat_elemani = html.find("div", class_="YMlKec fxKbKc")
return fiyat_elemani.get_text()
btc = fiyat_cek("https://www.google.com/finance/quote/BTC-USD")
print(btc)
Birden Fazla Kripto Parayı Aynı Anda Çekmek
Aynı fonksiyonu farklı URL'lerle çağırarak birden fazla parite için tekrar kullanabilirsiniz:
btc = fiyat_cek("https://www.google.com/finance/quote/BTC-USD")
eth = fiyat_cek("https://www.google.com/finance/quote/ETH-USD")
print(f"Bitcoin: {btc}")
print(f"Ethereum: {eth}")
Fonksiyonu bu şekilde parametrik yazmak (URL'i dışarıdan almak), her yeni parite için kodu kopyalayıp yapıştırmak yerine sadece farklı bir URL ile çağırmanızı sağlar — kodun tekrarını azaltan bir tasarım tercihidir.
Telegram'a Periyodik Bildirim Göndermek
Önceki derslerde gördüğümüz Telegram Bot API mesaj gönderme tekniğiyle birleştirdiğinizde:
import time
def mesaj_gonder(metin):
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
requests.post(url, data={"chat_id": CHAT_ID, "text": metin})
while True:
btc = fiyat_cek("https://www.google.com/finance/quote/BTC-USD")
eth = fiyat_cek("https://www.google.com/finance/quote/ETH-USD")
mesaj_gonder(f"₿ Bitcoin: {btc}\nΞ Ethereum: {eth}")
time.sleep(300) # 5 dakikada bir güncelle
Günlük Bildirim İçin Bekleme Süresi
Bir günde yalnızca bir kez özet almak isterseniz, time.sleep(86400) (86.400 saniye = 1 gün) kullanabilirsiniz. Bu tür sürekli çalışan botları, daha önce gördüğümüz gibi bir bulut ortamında veya kendi sanal sunucunuzda 7/24 çalışır halde tutmanız gerekir — yerel bilgisayarınızda çalıştırırsanız, bilgisayarı kapattığınız an bot da durur.
Sırada Ne Var?
Sırada, tamamen farklı bir konuya geçip Python'ın temel veri tiplerini (sayısal, metinsel, mantıksal, liste, sözlük) ele alacağız.