Python ile RSS haber akışı okuma: başlık, tarih ve kaynağı ayırın
RSS 2.0 akışından haber adaylarını çıkaran küçük bir Python okuyucu hazırlayın; otomatik yayın yerine editör kontrolü için kullanın.

Python ile RSS haber akışı okuma — uygulama akışı
Akışı doğrula
Yayıncının resmî RSS bağlantısını bul.
Kayıtları oku
Başlık, kaynak bağlantısı ve tarih metnini ayır.
Editör incelemesi
Duyuruyu açıp gerçek tarih ve kapsamı kontrol et.
Özgün haber yaz
Kaynağı belirterek güncel gelişmeyi kendi cümlelerinle aktar.
Bu şema rehber için hazırlanmış özgün bir iş akışıdır; uygulama ekran görüntüsü değildir.
Kısa özet
RSS 2.0 akışından haber adaylarını çıkaran küçük bir Python okuyucu hazırlayın; otomatik yayın yerine editör kontrolü için kullanın.
Teknoloji ve Yazılım topluluğuna gitBir haber bölümünü güncel tutmak için kaynak sitelerin duyurularını düzenli izlemek gerekir. RSS, uygun kaynaklarda başlık ve bağlantıları tek bir akışta görmeye yardımcı olabilir. Ancak akışta bir başlık bulunması haberin doğru, yeni veya yayınlanmaya hazır olduğunu göstermez. Bu rehberde RSS 2.0 kayıtlarını okuyup ekrana yazdıran bir araç hazırlıyoruz. Araç haber metnini kopyalamaz ve siteye otomatik yayın yapmaz; araştırılacak adayları düzenler.
1. RSS adresini nereden bulmalısınız?
Kaynağın resmî sitesinde “RSS”, “Feed” veya abonelik bağlantısı arayın. Normal blog sayfasının URL’sini RSS adresi gibi kullanmayın. Bir sitenin akış yolu başka bir sitede aynı olmak zorunda değildir. İlk denemede aşağıdaki yerleşik örnek veri kullanılabilir; böylece ağ erişimi olmadan okuma mantığını görürsünüz. Gerçek kullanıma geçerken seçtiğiniz HTTPS akışını elle doğrulayın.
2. Hangi alanları okuyacağız?
Her kayıt için başlık, bağlantı ve yayın tarihi gösteriyoruz. Başlığın boş olması veya tarihin bulunmaması mümkündür. Tarihi bulunmayan kaydı “bugün” diye işaretlemeyin. Haber yazarken duyuru tarihi, olay tarihi ve sizin yayın tarihinizi birbirinden ayırın. Kaynak zaman dilimi de tarih yorumunu etkileyebilir. Bu örnek tarih metnini değiştirmeden gösterir; otomatik olarak Türkiye saatine çevirdiğini varsaymayın.
3. Ağsız örnekle başlayın
Kodu rss_oku.py adıyla kaydedip python rss_oku.py komutunu çalıştırın. Bir örnek kayıt görürsünüz. Gerçek akış için komutun sonuna doğruladığınız HTTPS RSS adresini ekleyin. Kod iki megabaytlık bir üst sınır koyar ve DTD içeren belgeleri kabul etmez; bu, her tür XML güvenlik sorununun eksiksiz çözümü olduğu iddiası değildir.
import sys
from urllib.request import Request, urlopen
from urllib.parse import urlparse
import xml.etree.ElementTree as ET
sample = b'''<rss version="2.0"><channel><title>Demo</title>
<item><title>Ornek urun duyurusu</title>
<link>https://example.com/duyuru</link>
<pubDate>Mon, 09 Nov 2026 09:00:00 GMT</pubDate>
</item></channel></rss>'''
if len(sys.argv) > 1:
url = sys.argv[1]
if urlparse(url).scheme != 'https':
raise SystemExit('Yalnızca doğruladığınız HTTPS RSS adresini kullanın.')
request = Request(url, headers={'User-Agent':'EditorialRSSReader/1.0'})
with urlopen(request, timeout=10) as response:
data = response.read(2_000_001)
else:
data = sample
if len(data) > 2_000_000 or b'<!DOCTYPE' in data.upper():
raise SystemExit('Belge bu örneğin boyut veya XML sınırını aşıyor.')
root = ET.fromstring(data)
items = root.findall('./channel/item')
if not items:
raise SystemExit('RSS 2.0 kaydı yok; akış Atom veya farklı biçimde olabilir.')
for item in items[:20]:
title = (item.findtext('title') or '(Başlık yok)').strip()
link = (item.findtext('link') or '').strip()
date = (item.findtext('pubDate') or '(Tarih yok)').strip()
print(title, date, link, sep='\n')
print()4. RSS ile Atom farkını unutmayın
Bu kod bilinçli olarak RSS 2.0 channel/item yapısını arar. Atom akışlarını veya farklı XML ad alanlarını otomatik olarak çözmez. “Kayıt yok” mesajını sitenin haber yayımlamadığı biçiminde yorumlamayın. Önce belge türünü kontrol edin. Geniş bir kaynak havuzuna geçerken formatları destekleyen bir akış kütüphanesi, hata günlüğü ve yayıncı başına ölçülü sorgulama sıklığı gerekir. Tek kaynağı öğrenmek için küçük örnek daha anlaşılırdır.
5. Haber adayını doğrulama yöntemi
Çıkan bağlantıyı açın ve duyurunun birincil kaynağı olup olmadığını kontrol edin. Yeni sürüm haberi ise ürünün gerçek adı, tarih, erişim kapsamı ve varsa bekleme listesi şartlarını not edin. Pazarlama iddialarını kendi testinizmiş gibi yazmayın. Örneğin üretici “daha hızlı” diyorsa hangi karşılaştırmaya dayandığını kaynaktan kontrol edin. Eksik bilgi varsa haberde sınırı açıkça belirtin; boşluğu tahminle doldurmayın.
6. Tekrarlanan kayıtlar ve güncellemeler
Aynı bağlantı birkaç gün boyunca akışta kalabilir. Her okuma yeni haber demek değildir. Daha gelişmiş kullanımda bağlantıyı veya yayıncının verdiği GUID alanını saklayıp tekrarları ayırabilirsiniz. Bir haber güncellenmişse yalnızca başlığının aynı olmasına bakarak görmezden gelmeyin. Yeni eklenen bilginin ne olduğunu editör karşılaştırmalıdır. Örneğimiz kalıcı kayıt tutmadığı için her çalıştırmada aynı adayları yeniden gösterebilir.
7. Haber odasına uygun kullanım
Günde birkaç kaynaktan aday toplamak, seçilen konuları okuyup özgün Türkçe haber hazırlamak için yeterli bir başlangıçtır. Akışın tamamını otomatik olarak yeniden yayımlamak içerik kalitesini ve kaynak haklarını sorunlu hale getirebilir. Başlık, tarih, kaynak ve editör notunu ayrı alanlarda tutun. Haberler bölümüne rehber veya tanıtım metni karışmasını önlemek için yayın türünü insan kontrolüyle seçin. Kod burada araştırmayı hızlandırır; haber doğrulamasının yerini almaz.


