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.