Python Haber Botu Yapmak (RSS ile)

kusha · 03 Ağustos 2026 · 4 dk okuma

Çoğu haber sitesi, web scraping'e hiç gerek kalmadan içeriğini yapılandırılmış bir RSS akışı üzerinden de yayınlar. RSS, scraping'den çok daha kararlı bir veri kaynağıdır çünkü format sabittir ve site tasarımı değişse bile genelde bozulmaz.

RSS Akışını Bulmak

Bir haber sitesinin RSS akışını bulmak için genelde "[site adı] rss" şeklinde arama yapmanız yeterlidir — çoğu büyük haber sitesi, farklı kategoriler (ekonomi, spor, gündem) için ayrı RSS adresleri sunar.

Kurulum

pip install feedparser

Akışı Okumak

import feedparser

url = "https://www.haberSitesi.com/rss/ekonomi"
akis = feedparser.parse(url)

for haber in akis.entries:
    print(haber.title)

feedparser.parse(url), RSS adresini indirip ayrıştırır ve akis.entries üzerinden her bir haberi bir nesne olarak dolaşmanızı sağlar.

for haber in akis.entries:
    baslik = haber.title
    link = haber.link
    tarih = haber.published
    print(f"{tarih} | {baslik} | {link}")
  • haber.title: haberin başlığı.
  • haber.link: haberin tam URL'i.
  • haber.published: yayın tarihi/saati (metin formatında).

Yalnızca Yeni Haberleri Bildirmek

Deprem botunda gördüğümüz "daha önce bildirilenleri atla" mantığının aynısı burada da işe yarar:

bildirilenler = set()

def yeni_haberleri_kontrol_et():
    akis = feedparser.parse(url)
    for haber in akis.entries:
        if haber.link in bildirilenler:
            continue
        bildirilenler.add(haber.link)
        mesaj_gonder(f"{haber.title}\n{haber.link}")

Burada tekilleştirme anahtarı olarak haberin linkini kullanmak mantıklıdır — her haberin URL'i benzersizdir, başlık teorik olarak (nadiren de olsa) tekrar edebilir.

Nereye Entegre Edebilirsiniz?

Konsola yazdırmak yerine bu veriyi:

  • Bir Telegram/Discord botuyla otomatik bildirime çevirebilirsiniz.
  • Django/Flask ile yaptığınız bir web sitesinde canlı haber akışı olarak gösterebilirsiniz.
  • Bir masaüstü uygulamasının (PyQt5) bir bölümüne yerleştirebilirsiniz.

Sırada Ne Var?

Sıradaki iki derste, siber güvenlik eğitiminin klasik bir konusuna — brute-force (kaba kuvvet) şifre deneme mantığına — eğitim amaçlı, sorumlu bir çerçevede değineceğiz.