1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
| # _*_ coding: utf-8 -*-
import Tkinter
import urllib
import xml.parsers.expat
class ParserXML:
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.link = False
self.edit = edit
def start(self, name, attrs):
if name == 'title':
self.title = True
elif name == 'link':
self.link = True
else:
pass
def end(self, name):
if name == 'title':
self.title = False
elif name == 'link':
self.link = 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.link:
self.edit.insert(Tkinter.END, 'Link: ')
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 = 'https://www.python.org/jobs/feed/rss/'
page = urllib.urlopen(url)
data = page.read()
parser = ParserXML(self.edit)
parser.feed(data)
root = Tkinter.Tk()
window = Window(root)
root.minsize(600, 480)
root.maxsize(600, 480)
root.mainloop()
|