Python üzerinde RSS işleme ve Turkhackteam RSS // Liserjik

Liserjik

Kıdemli Üye
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.

r0PlR7.png


Ö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
Ardından RSS linki işleyelim.

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ü:
P7XLB9.png


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

 

gl0balfox

Üye
9 Tem 2019
228
0
win.configure(bg="white")

Arkaplan beyaz olursa daha hoş olacağa benziyor.
Python bilginizi takdir ediyorum,kısa zamanda oldukça yüklü bir ilerleme kaydettiniz.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.