您的位置:首页 > 编程语言 > Python开发

python处理HTML与XML之RSS阅读器

2014-03-01 17:47 190 查看
RSS是一种描述和同步网站内容的格式。RSS是基于XML的。

以下代码未实现,有报错

#-*- coding:utf-8 -*-
#file:pyRSS.py
#

import Tkinter
import urllib
import xml.parsers.expat

#XML解析类
class MyXML:
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.date=False
self.edit=edit                                    #多行文本框对象
#起始标记处理方法
def start(self,name,attrs):
if name=='title':                                 #判断是否为title元素
self.title=True                               #标志设为真
elif name=='pubDate':                             #判断是否为pubDate元素
self.date=True
else:
pass
#结束标记处理方法
def end(self,name,attrs):
if name=='title':
self.title=False                              #标记设为假
elif name=='pubDate':
self.date=False                               #标记设为假
else:
pass
#字符数据处理方法
def data(self,name):
if self.title:                                    #根据标志状态输出数据
self.edit.insert(Tkinter.END,'***********************\n')
self.edit.insert(Tkinter.END,'Title:')
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.get=Tkinter.Button(root,text='获取RSS',command=self.Get)
self.get.place(x=280,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='http://www.python.org/channews.rdf'
page=urllib.urlopen(url)                  #打开URL
data=page.read()                          #读取URL内容
parser=MyXML(self.edit)                   #生成实例对象
parser.feed(data)                         #处理XML数据

root=Tkinter.Tk()
window=Window(root)
root.minsize(600,480)
root.maxsize(600,480)
root.mainloop()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: