每2分钟更新一次RSS feed

时间:2018-03-19 12:19:11

标签: python-3.x tkinter timer feedparser

我到处都搜索过,这就是我在这里问的原因。 我的程序显示了一个解析的RSS提要(新闻),最终看起来像这样:

feedShow = feed['entries'][0]['title'] 

现在,此feedShow元素是Label稍后显示的文本。代码行中的0确定要显示的新闻标题。我想每2分钟更改一次+1。 我怎么做?我已经知道了一个更基本的情况,但是在代码中间。作为我的时钟,我使用

import time
from datetime import date
from datetime import datetime 

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样?代码将每X秒更新self.headlineIndex(当前设置为1秒)。标题是使用headline = feed['entries'][self.headlineIndex]['title']抓取的。注意方括号内的self.headlineIndex而不是零的数字。

    try:
    import tkinter as tk
except:
    import Tkinter as tk

"""Some dummy data in the same format as OP"""
feed = {'entries': [{'title':"US Pres. incompetent"},
                    {'title':"Sport happened"},
                    {'title':"Politican Corrupt"}]
        }

class App(tk.Frame):
    def __init__(self,master=None,**kw):
        tk.Frame.__init__(self,master=master,**kw)
        self.txtHeadline = tk.StringVar()
        self.headline = tk.Label(self,textvariable=self.txtHeadline)
        self.headline.grid()

        self.headlineIndex = 0

        self.updateHeadline()

    def updateHeadline(self):
        try:
            headline = feed['entries'][self.headlineIndex]['title']
        except IndexError:
            """This will happen if we go beyond the end of the list of entries"""
            self.headlineIndex = 0
            headline = feed['entries'][self.headlineIndex]['title']

        self.txtHeadline.set(headline)
        self.headlineIndex += 1
        self.after(1000,self.updateHeadline)


if __name__ == '__main__':
    root = tk.Tk()
    App(root).grid()
    root.mainloop()