2017-05-04 62 views
0

我在試圖找到一種方法來顯示我正在爲GUI工作的谷歌搜索/ RSS FEED的標題,網址和時間戳列表。我遇到很多麻煩,試圖找到一種將結果以可讀形式排序的方法。任何文章或指導,至於做什麼將不勝感激!在tkinter中的Pprint

from tkinter import * 
import urllib.request 
import feedparser 
from pprint import pprint 



search_term = ('') #search term for url 
quoted_search_term = urllib.parse.quote(search_term) 
def go(): 
    text.delete(1.0, END) #delete text 
    rss_string = 'https://news.google.com/news/section?output=rss'.format  (quoted_search_term) 
    parsed_rss_string = feedparser.parse(rss_string) #assigning variable for parsed feed 
    text.insert(1.0, parsed_rss_string) #insert text of parsed feed 


browser_window = Tk() #tk window 
browser_window.title('RSS Feed') #Window title 
label = Label(browser_window, text= 'Search:') 
entry = Entry(browser_window) 
button = Button(browser_window, text='Go', command = go)#Go Button 
text = Text(browser_window) #results box 

label.pack(side=TOP) #Positioning of search title 
entry.pack(side=TOP) #Positioning of search box 
button.pack(side=TOP)#Positioning of go 
text.pack(side= RIGHT) #Positioning of text 
browser_window.mainloop() 
+0

我不明白'pprint'必須做它正在寫入一個文本框,而不是打印。 –

回答

0

爲了美化串,使用pprint.pformat

from pprint import pformat 

... 

def go(): 
    ... 
    parsed = feedparser.parse(rss_string) 
    prettified = pformat(parsed) 
    text.insert("1.0", prettified) 

注:

  • 有一個在URL https://news.google.com/news/section?output=rss沒有佔位符;沒有影響str.format
  • feedparser.parse不返回字符串,而是字典。

UPDATE顯示發佈日期,標題,網址,而你需要從字典中獲得這些條目:

def go(): 
    rss_string = 'https://news.google.com/news/section?output=rss' 
    parsed = feedparser.parse(rss_string) 
    text.delete("1.0", END) 
    for entry in parsed['entries']: 
     text.insert(END, '{0[published]} - {0[title]} {0[link]}\n\n'.format(entry)) 
+0

有沒有辦法只是沒有其他所有的文章,網址和日期的標題,或者我必須使用該詞典來獲得? – learningpython

+0

@learningpython,我添加了另一個版本的'go()',它只顯示日期,標題和網址。 – falsetru

+0

我結束了工作,並得到了與您的解決方案非常相似的東西。感謝您的幫助! – learningpython