python代码阅读器_用Python代码实现的RSS阅读器示例

本文介绍了如何使用Python和Tkinter模块创建一个简单的RSS阅读器。通过解析XML数据,该程序能够显示RSS订阅的标题、描述和日期。代码示例详细展示了如何处理XML起始和结束标记以及字符数据。
摘要由CSDN通过智能技术生成

玩蛇网python之家这篇文章是关于如何使用Python代码实现RSS阅读器示例,如何用Tkinter等模块方法实现RSS订阅器的编写,参考学习过下面的正试代码后就会明白。

简单的说下RSS阅读器是什么:RSS阅读器是一种软件或是说一个程序,其实质是为了方便地读取RSS和Atom文档。

用Python代码实现的RSS阅读器示例如下:

# -*- 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.description = 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)

#www.iplaypy.com

class Window:

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)

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()

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/c2654.html

相关文章 Recommend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值