Python實現的RSS閱讀器例項

2022-09-27 11:27:14 字數 2888 閱讀 5440

# -*- coding:utf-8 -*-

# file: pyrss.py

#import tkinter

import urllib

import xml.parsers.expat

class myxml: # xml解析類

def __init__(self, edit):

self.parser = xml.parsers.expat.parsercreate() # 生成xmlparser

self.parser.startelementhandler = self.start # 起始標記處理方法

self.parser.endelementhandler = self.end # 結束標記處理方法

self.parser.characterdatahandler = self.data # 字元資料處理方法

self.title = false # 狀態標誌

self.description = false

self.date = false

self.edit = edit # 多行文字框物件

def start(self, name, attrs): # 起始標記處理方法

if name == 'title': # 判斷是否為title元素

self.title = true # 標誌設為真

elif name == 'description':

self.description = true

elif name == 'pubdate': # 判斷是否為pubdate

self.date = true # 標誌設為真

else:

pass

def end(self, name): # 結束標記處理

if name == 'title':

self.title = false # 標誌設為假

elif name == 'description':

self.descriptwww.cppcns.comion = false

elif name == 'pubdate':

self.date = false # 標誌設為假

else:

pass

def data(self,data): # 字元資料處理方法

if self.title: # 根據標誌狀態輸出資料

self.edit.insert(tkinter.end,

'******************************\n')

self.edit.insert(tkinter.end, 'title: ')

self.edit.insert(tkinter.end, data + '\n')

elif self.description:

self.edit.insert(tkinter.end, 'date: ')

self.edit.insert(tkinter.end, data + '\n')

elif self.date:

self.edit.insert(tkinter.end, 'date: ')

self.edit.insert(tkinter.end, data + '\n')

else:

pass

def feed(self, data):

self.parser.parse(data, 0)

class window:

def __init__(self, root):

self.root = root # 建立元件

self.entryurl www.cppcns.com= tkinter.entry(root,width = 30)

self.entryurl.place(x = 65, y = 15)

self.get = tkinter.button(root,

text = '讀取rss', command = self.get, font = ('system','10'))

self.get.place(x = 350www.cppcns.com, y = 15)

self.frame = tkinter.frame(root, bd=2程式設計客棧)

self.scrollbar = tkinter.scrollbar(self.frame)

self.edit = tkinter.text(self.frame,yscrollcommand = self.scrollbar.set,

width = 96, height = 32)

self.scrollbar.config(command=self.edit.yview)

self.edit.pack(side = tkinter.left)

self.scrollbar.pack(side=tkinter.right, fill=tkinter.y)

self.frame.place(y = 50)

def get(self):

url = self.entryurl.get()

page = urllib.urlopen(url) # 開啟url

data = page.read() # 讀取url內容

parser = myxml(self.edit) # 生成例項物件

parser.feed(data) # 處理xml資料

page.close()

root = tkinter.tk()

root.title('rss 閱讀器')

window = window(root)

root.minsize(700,500)

root.maxsize(700,500)

root.mainloop()

本文位址:

推薦 鮮果RSS閱讀器

另外 鮮果也有類似於google reader的收藏rss輸出,如果能像豆瓣那樣提供 腳印系統 方便使用者和訂戶之間的交流就更好了。我的feed上 鮮果在目前的訂戶僅次於zhuaxia和google reader,發展還是比較快的。同乙個領域還是有些競爭比較好,使用者有更多的選擇。車東 發表於 20...

那些年用過的RSS閱讀器

最近幾天在折騰rss閱讀器,作業系統是黑蘋果os x 10.9.5,換了各種各樣的閱讀器,總沒有一款適合我,抓狂中。下面是對這兩天換的閱讀器的對比分析 1.feedly 缺點 不穩定 gmail經常無法連線,而且免費版無法匯出opml,勉為其難的在使用中 優點 使用者體驗完美,操作流暢 2.shro...

五個最佳RSS新聞閱讀器

文章出自 google reader 基於web 自從google月2006年底推出了google reader之後,其令人印象深刻的速度和可用性就吸引了大批使用者,使用google reader最明顯的好處就是,無論使用者在那台電腦上使用,看到的feed都是相同的介面,對於專案的已讀 未讀 標籤都...