Bu yazıda parçaları birleştiriyoruz. Amaç: bir ürünün fiyatını düzenli kontrol eden, hedefin altına düşünce Telegram'dan haber veren gerçek bir bot. Bu, birçok müşteri projemizin çekirdeğidir.

Parçalar

  • Scraping: ürün sayfasından güncel fiyatı çek
  • Karşılaştırma: fiyat hedefin altında mı?
  • Bildirim: altındaysa Telegram mesajı gönder
  • Zamanlama: bunu her saat tekrarla

1. Fiyatı çeken fonksiyon

import requests
from bs4 import BeautifulSoup

def fiyat_al(url):
    headers = {"User-Agent": "Mozilla/5.0"}
    yanit = requests.get(url, headers=headers, timeout=15)
    corba = BeautifulSoup(yanit.text, "html.parser")
    ham = corba.select_one("span.fiyat").text
    # "1.499,90 TL" -> 1499.90
    temiz = ham.replace("TL", "").replace(".", "").replace(",", ".").strip()
    return float(temiz)

2. Telegram bildirimi

import requests

TOKEN = "BOT_TOKEN"
CHAT_ID = "CHAT_ID"

def uyar(mesaj):
    url = "https://api.telegram.org/bot" + TOKEN + "/sendMessage"
    requests.post(url, data={"chat_id": CHAT_ID, "text": mesaj})

3. Kontrol mantığı

URUN = "https://site.com/urun/123"
HEDEF = 1200.0

def kontrol():
    guncel = fiyat_al(URUN)
    print("Guncel fiyat:", guncel)
    if guncel <= HEDEF:
        uyar("Fiyat dustu! Su an " + str(guncel) + " TL: " + URUN)

4. Her saat çalıştır

import schedule, time

schedule.every(1).hours.do(kontrol)
kontrol()   # ilk kontrolu hemen yap

while True:
    schedule.run_pending()
    time.sleep(60)
💡

Bu iskelet, izleme projelerinin çoğunda aynıdır: kaynağı çek, bir koşula bak, koşul sağlanınca haber ver, tekrarla. Ürün yerine döviz kuru, stok durumu veya rakip fiyatı koyabilirsiniz.

Gerçek dünyaya taşımak

Bunu bilgisayarınızda değil, kesintisiz çalışsın diye bir sunucuda çalıştırmak gerekir. Ayrıca hata yönetimi, birden çok ürün ve fiyat geçmişi eklenince iş büyür. Böyle uçtan uca bir sistem istiyorsanız kurup teslim edebiliriz.