- 11 Ağu 2018
- 2,180
- 7
- 6
Python üzerinde RSS işleme ve Turkhackteam RSS // Liserjik
Merhaba Turkhackteam,
bu yazıda feedparser modülü ile RSS verisini işleme ve Turkhackteam kategorilerinin RSS dosyaları ile bir toplist yapacağız.
Öncelikle RSS nedir, nerelerde kullanılır?
RSS, Rich Site Summary (Zengin Site Özeti); forumlarda, haber sitelerinde ve bloglarda sıklıkla kullanılan bir protokoldür. Bu protokolde sitenin içeriğini takip edebilmek için
Bazı ağaç tipinde yığınlama yapılır. Bu yığınlama genelde *.rss ve ya *.xml tipindedir. Turkhackteam de neredeyse tüm kategorilerde ve alt kategorilerde (ÇÖP hariç) bu özellik mevcuttur.
Erişmek için kategori isminin altında bulunan beyaz RSS simgesine tıklamanız yeterlidir.
Örnek olarak sık kullanılan kategoriler ve RSS linkleri:
Bu yazıda rss parser işlemi için feedparser kullanılacaktır. Bu modülü edinmek için pip aracını kullanabiliriz.
Kullanımına geçersek modülü dahil edelim.
Ardından RSS linki işleyelim.
title -> Konu başlığı çekmek için.
author -> Konuyu başlatan (açan) kişinin kullanıcı adı
link -> Konu linki
RSS kullanarak istediğimiz kategoriyi takip edebiliriz. Şimdi istediğimiz kategoride (örnekte Python ve THT Yardım Merkezi) son 10 konuyu çeken takip uygulaması yazalım.
Ben burada Tkinter modülü ile grafik ara yüzü oluşturacağım. Son 10 konuyu çekmek için ise bir for döngüsü ekleyeceğiz. Algoritmasını açıklayalım.
Ekran görüntüsü:
Kod:
Github: https://github.com/liser-tht/RSS-THT/blob/master/rsstht.pyw
Merhaba Turkhackteam,
bu yazıda feedparser modülü ile RSS verisini işleme ve Turkhackteam kategorilerinin RSS dosyaları ile bir toplist yapacağız.
Öncelikle RSS nedir, nerelerde kullanılır?
RSS, Rich Site Summary (Zengin Site Özeti); forumlarda, haber sitelerinde ve bloglarda sıklıkla kullanılan bir protokoldür. Bu protokolde sitenin içeriğini takip edebilmek için
Bazı ağaç tipinde yığınlama yapılır. Bu yığınlama genelde *.rss ve ya *.xml tipindedir. Turkhackteam de neredeyse tüm kategorilerde ve alt kategorilerde (ÇÖP hariç) bu özellik mevcuttur.
Erişmek için kategori isminin altında bulunan beyaz RSS simgesine tıklamanız yeterlidir.
Örnek olarak sık kullanılan kategoriler ve RSS linkleri:
Kod:
THT Yardım Merkezi
https://www.turkhackteam.org/external.php?type=RSS2&forumids=186
Trojan ve Virüsler
https://www.turkhackteam.org/external.php?type=RSS2&forumids=109
C# j# vb.net (.NET dilleri)
https://www.turkhackteam.org/external.php?type=RSS2&forumids=164
Grafik Tasarım
https://www.turkhackteam.org/external.php?type=RSS2&forumids=26
Sosyal Medya ve Platformlar
https://www.turkhackteam.org/external.php?type=RSS2&forumids=16
Bu yazıda rss parser işlemi için feedparser kullanılacaktır. Bu modülü edinmek için pip aracını kullanabiliriz.
Kod:
pip install feedparser
Kullanımına geçersek modülü dahil edelim.
Kod:
>> import feedparser
Kod:
>> link = 'https://www.turkhackteam.org/external.php?type=RSS2&forumids=164' # RSS linki
>> get = feedparser.parse(link) #burada get değişkeninde bir listede işlenen parametreleri topluyoruz
>> get.entries[0].title #title ile başlığı çekmekteyiz
'C# Veri Türleri Nelerdir? / Ex0nly'
>> get.entries[0].author #Buradan konuyu başlatan kişiyi çekiyoruz
'Ex0nly'
>> get.entries[0].link #Konu linkini çekmekteyiz.
'https://www.turkhackteam.org/c-j-vb-net-net-dilleri/1886903-c-veri-turleri-nelerdir-ex0nly.html'
title -> Konu başlığı çekmek için.
author -> Konuyu başlatan (açan) kişinin kullanıcı adı
link -> Konu linki
RSS kullanarak istediğimiz kategoriyi takip edebiliriz. Şimdi istediğimiz kategoride (örnekte Python ve THT Yardım Merkezi) son 10 konuyu çeken takip uygulaması yazalım.
Ben burada Tkinter modülü ile grafik ara yüzü oluşturacağım. Son 10 konuyu çekmek için ise bir for döngüsü ekleyeceğiz. Algoritmasını açıklayalım.
Kod:
z = list()
for x in range(10):
y = get.entries[x].title
z.append(y)
Ekran görüntüsü:
Kod:
Kod:
__author__ = 'Liserjik from Turkhackteam.net/org'
__version__ = '1.0'
import feedparser as fp #RSS işlemek için gerekli olan modülümüz
import tkinter #Grafiksel arayüz oluşturmak için kullanacağımız modül
class rss:
def py_rss():
link = 'https://www.turkhackteam.org/external.php?type=RSS2&forumids=512'
return (fp.parse(link)).entries
def ym_rss():
link = 'https://www.turkhackteam.org/external.php?type=RSS2&forumids=186'
return (fp.parse(link)).entries
win = tkinter.Tk() #Tk sınıfı win değişkeni adı altında alındı
win.resizable(False, False)
win.geometry('750x400') #formun boyutu 300x300 ebatında ayarlandı
win.title('Turkhackteam Kategori Kontrol Edici / Liserjik') #pencere başlığı ayarlandı
py_list = tkinter.Listbox(win) #py_list adında bir Listbox oluşturuldu
ym_list = tkinter.Listbox(win) #cpp_list adında bir Listbox oluşturuldu
xpy = rss.py_rss()
for x in range(10):
py_list.insert (x, xpy[x].title)
xym = rss.ym_rss()
for x in range(10):
ym_list.insert (x, xym[x].title)
py_label = tkinter.Label(win, text="Son 10 Python Konusu", bg='white')
ym_label = tkinter.Label(win, text="Son 10 Yardım Merkezi Konusu", bg='white')
py_label.pack(fill=tkinter.X, pady=4)
py_list.pack(fill=tkinter.X)
ym_label.pack(fill=tkinter.X, pady=4)
ym_list.pack(fill=tkinter.X, pady=4)
if __name__ == '__main__':
import sys
sys.exit(win.mainloop())
Github: https://github.com/liser-tht/RSS-THT/blob/master/rsstht.pyw