成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python入門之tkinter實現(xiàn)簡單的RSS功能

Cheng_Gang / 3375人閱讀

摘要:,庫的使用,注意已經(jīng)與有了很大不同。對于下面的,定義了一些窗口屬性,接下來在代碼中我會簡單記錄一下它的用法。

這次練習(xí)的題目是實現(xiàn)一個簡單的RSS功能,需要了解的知識點:

tkinter,在上一篇《簡單的記事本》中已經(jīng)了解了一些tkinter的用法,在這里延續(xù)了上一篇,加深一下印象。

urllib,HTMLPaser庫的使用,注意python3已經(jīng)與python2有了很大不同。

# -*- coding:utf-8 -*-
#編碼聲明
 
# file: run_rss_one.py
#文件名
 
import tkinter
import urllib
import requests
from html.parser import HTMLParser
import os



#導(dǎo)入方法模塊
class MyHtmlParser(HTMLParser):

    def __init__(self,edit):
        HTMLParser.__init__(self)
        self.edit = edit
        self.a_title = False
        self.a_text = False
    def handle_starttag(self,tag,attrs):
        if tag == "title":
            self.a_title = True
        if tag == "a":
            self.a_text=True
        
    def handle_endtag(self,tag):
        if tag == "title":
            self.a_title = False
        if tag == "a":
            self.a_text = False
    def handle_data(self,data):
        if self.a_title:
            self.edit.insert(tkinter.END,data)
        if self.a_text:
            self.edit.insert(tkinter.END,data+"
")

這里class MyHtmlParser繼承了HTMLParser,根據(jù)這個模板你可以添加你自己需要從網(wǎng)頁上獲取的內(nèi)容了,假設(shè)你的網(wǎng)頁中有標簽p,試一試新增一個屬性self.a_p
另外對于HTMLParser,這個了解起來可以需要費一些功夫,不過又有什么關(guān)系呢,你所浪費掉的時間總會在某個時候得到收獲的,人生嘛時間不浪費在這里也會浪費在那里。

對于下面的class Window,定義了一些窗口屬性,接下來在代碼中我會簡單記錄一下它的用法。

class Window:
    def __init__(self, root):
        self.root = root     
        self.entryUrl = tkinter.Entry(root,width = 30)#Entry是輸入控件
        self.entryUrl.place(x = 65, y = 15)#place定義了它放置的位置,然后如下的控件皆按照這樣的方式定義好了
        #這里self.Get在這個函數(shù)中展示了輸出的東西,當點擊按鈕時候,就會顯示到文本框中
        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 = 60)
        #用label定義一個提示輸入的內(nèi)容,然后把這個內(nèi)容放置到輸入框的下方
        self.indicate=tkinter.Label(root,text="(Please input: local path or url)",fg="red")
        self.indicate.place(x=65,y=35)
 
    def Get(self):
        url = self.entryUrl.get()
        #做一個判斷如果是本地路徑就獲取文件名
        if os.path.isdir(url):
            #如果要循環(huán)讀取目錄及子目錄,用os.walk
            dir=os.listdir(url) 
            #把路徑下所有的文件及目錄都展示在tkinter的文本框中,請回顧init中內(nèi)容,self.edit本質(zhì)就是一個Text阿
            for dir_n in dir:
                self.edit.insert(tkinter.END,url+ " " +dir_n+"
") 
                #在這里也可以繼續(xù)深入,對路徑下的文件判斷,比如獲取文中的幾行內(nèi)容,抑或是對路徑下的目錄繼續(xù)統(tǒng)計下去         
        else: 
            #注意python3的用法要加request
            response=urllib.request.urlopen(url)
            page = response.read()  # 讀取URL內(nèi)容
            hp = MyHtmlParser(self.edit) #解析html
            hp.feed(page.decode("utf-8")) #feed(),主要用于接受帶html標簽的str,當調(diào)用這個方法并提供相應(yīng)的data時,實例開始執(zhí)行
            hp.close()#結(jié)束執(zhí)行close()

在這里通過HTMLPaser對解析html有了一個簡單的了解,在下一篇文章中,會繼續(xù)延續(xù)此文的內(nèi)容,主要重點放在獲取某個網(wǎng)站的特定內(nèi)容。
所以今天你走過的路決定了你明天可以走的路,每一個障礙都要及時解決,不要輕易繞過

然后再添加上主體控制部分,就可以運行你的文件試一試了。

root = tkinter.Tk()
root.title("RSS 閱讀器")
window = Window(root)
root.minsize(700,500)
root.maxsize(700,500)
root.mainloop()

新手之作,歡迎探討一塊兒學(xué)習(xí)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38294.html

相關(guān)文章

  • python入門一個簡單記事本

    摘要:最近在練習(xí)一個關(guān)于項目的列表,拿到列表看到這是要實現(xiàn)一個記事本功能,剛開始拿到題目真有點懵。尤其是試驗之后發(fā)現(xiàn)一定要用類實現(xiàn)起來才簡單一些,對于這點類,,要知道本人已經(jīng)接觸語言多年,但對于面向?qū)ο筮€是一竅不通。 最近在練習(xí)一個關(guān)于python項目的列表,拿到列表看到這是要實現(xiàn)一個記事本功能,剛開始拿到題目真有點懵。雖然用python實現(xiàn)excel的處理已經(jīng)很熟悉了,且已經(jīng)把python...

    xietao3 評論0 收藏0
  • [譯][Tkinter 教程01] 入門: Label 控件

    摘要:已獲原作者授權(quán)原系列地址下面我們將以中最簡單的控件控件開始這個系列的教程在中控件用以顯示文字和圖片通常被用來展示信息而非與用戶交互譯者注也可以綁定點擊等事件只是通常不這么用程序員的教程怎么能少了我們尊重這個傳統(tǒng)但我們不說讓我們來秀出吧下面的 已獲原作者授權(quán). 原系列地址: Python Tkinter Hello Tkinter Label 下面我們將以 Tkinter 中最簡單的控...

    Sike 評論0 收藏0
  • Python 入門繼續(xù)用tkinter實現(xiàn)股票查詢

    摘要:代碼思路通過獲取輸入內(nèi)容股票代碼,然后通過按鍵添加,按鍵刪除,添加在列表中的代碼都能通過查詢按鈕獲取到最新的股票信息。唯一的遺憾是沒有實現(xiàn)手動選擇更新頻率。當然使用也是沒問題噠直接得到的就是格式的則需要轉(zhuǎn)換格式簡易股票查詢不足之處請見諒 繼續(xù)練習(xí)tkinter,順便學(xué)習(xí)如何抓取網(wǎng)頁內(nèi)容。 使用urllib和requests都能得到url中的內(nèi)容,有一丁點兒的區(qū)別。代碼思路:通過Entr...

    cartoon 評論0 收藏0
  • Python門面擔(dān)當 - Tkinter

    摘要:在這個窗口之上,可以添加各種輸入框按鈕文本等,可以增加對各種動作的處理。事件要與特定的控件相綁定,比如按鈕有點擊事件,輸入框有按鍵事件,窗體有關(guān)閉事件等。 在大多數(shù)時候,我們都在黑黢黢的控制臺里執(zhí)行 Python 腳本。這看起來很酷很 GEEK。但對于部分場景下的用戶來說,這樣就不大美觀和人性化了:我們需要交互更方便的圖形化產(chǎn)品,也就是 GUI (圖形用戶界面,Graphical Us...

    Lucky_Boy 評論0 收藏0
  • [譯][Tkinter 教程11] 對話框和消息框

    摘要:已獲原作者授權(quán)原系列地址簡介提供了一系列的對話框可以用來顯示文本消息提示警告信息和錯誤信息選擇文件或顏色其他一些簡單的對話框還可以請求用戶輸入文本整數(shù)或數(shù)字下面是一個典型的對話框使用場景在應(yīng)用程序中經(jīng)常會有退出按鈕如下點擊按鈕會彈出一個確認 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡介 Tkinter 提供了一系列的對話框, 可以用來顯示文本消息, 提示警告信息...

    Anchorer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<