Python实现的RSS阅读器实例


Posted in Python onJuly 25, 2015

本文实例讲述了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)
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()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
python中as用法实例分析
Apr 30 Python
python中argparse模块用法实例详解
Jun 03 Python
浅谈python可视化包Bokeh
Feb 07 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
Python获取央视节目单的实现代码
Jul 25 #Python
Python实现将DOC文档转换为PDF的方法
Jul 25 #Python
将Django框架和遗留的Web应用集成的方法
Jul 24 #Python
将Python的Django框架与认证系统整合的方法
Jul 24 #Python
Django与遗留的数据库整合的方法指南
Jul 24 #Python
简介Django中内置的一些中间件
Jul 24 #Python
Python字符串转换成浮点数函数分享
Jul 24 #Python
You might like
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[06:36]吞吞映像top1
2014/06/20 DOTA
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python金融数据可视化汇总
2017/11/17 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
python3实现表白神器
2019/04/09 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Python如何在bool函数中取值
2020/09/21 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
类如何去实现接口
2013/12/19 面试题
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
《石榴》教学反思
2014/03/02 职场文书
室内设计专业自荐信
2014/05/31 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
六一活动主持词
2015/06/30 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python