Python实现的RSS阅读器实例
本文实例讲述了Python实现的RSS阅读器。分享给大家供大家参考。具体如下:
#-*-coding:utf-8-*- #file:pyRSS.py # importTkinter importurllib importxml.parsers.expat classMyXML:#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#多行文本框对象 defstart(self,name,attrs):#起始标记处理方法 ifname=='title':#判断是否为title元素 self.title=True#标志设为真 elifname=='description': self.description=True elifname=='pubDate':#判断是否为pubDate self.date=True#标志设为真 else: pass defend(self,name):#结束标记处理 ifname=='title': self.title=False#标志设为假 elifname=='description': self.description=False elifname=='pubDate': self.date=False#标志设为假 else: pass defdata(self,data):#字符数据处理方法 ifself.title:#根据标志状态输出数据 self.edit.insert(Tkinter.END, '******************************\n') self.edit.insert(Tkinter.END,'Title:') self.edit.insert(Tkinter.END,data+'\n') elifself.description: self.edit.insert(Tkinter.END,'Date:') self.edit.insert(Tkinter.END,data+'\n') elifself.date: self.edit.insert(Tkinter.END,'Date:') self.edit.insert(Tkinter.END,data+'\n') else: pass deffeed(self,data): self.parser.Parse(data,0) classWindow: def__init__(self,root): self.root=root#创建组件 self.entryUrl=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=350,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) defGet(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()
希望本文所述对大家的Python程序设计有所帮助。