亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python入門(mén)之tkinter實(shí)現(xiàn)簡(jiǎn)單的RSS功能

Cheng_Gang / 3406人閱讀

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

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

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

urllib,HTMLPaser庫(kù)的使用,注意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ù)這個(gè)模板你可以添加你自己需要從網(wǎng)頁(yè)上獲取的內(nèi)容了,假設(shè)你的網(wǎng)頁(yè)中有標(biāo)簽p,試一試新增一個(gè)屬性self.a_p
另外對(duì)于HTMLParser,這個(gè)了解起來(lái)可以需要費(fèi)一些功夫,不過(guò)又有什么關(guān)系呢,你所浪費(fèi)掉的時(shí)間總會(huì)在某個(gè)時(shí)候得到收獲的,人生嘛時(shí)間不浪費(fèi)在這里也會(huì)浪費(fèi)在那里。

對(duì)于下面的class Window,定義了一些窗口屬性,接下來(lái)在代碼中我會(huì)簡(jiǎn)單記錄一下它的用法。

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在這個(gè)函數(shù)中展示了輸出的東西,當(dāng)點(diǎn)擊按鈕時(shí)候,就會(huì)顯示到文本框中
        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定義一個(gè)提示輸入的內(nèi)容,然后把這個(gè)內(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()
        #做一個(gè)判斷如果是本地路徑就獲取文件名
        if os.path.isdir(url):
            #如果要循環(huán)讀取目錄及子目錄,用os.walk
            dir=os.listdir(url) 
            #把路徑下所有的文件及目錄都展示在tkinter的文本框中,請(qǐng)回顧init中內(nèi)容,self.edit本質(zhì)就是一個(gè)Text阿
            for dir_n in dir:
                self.edit.insert(tkinter.END,url+ " " +dir_n+"
") 
                #在這里也可以繼續(xù)深入,對(duì)路徑下的文件判斷,比如獲取文中的幾行內(nèi)容,抑或是對(duì)路徑下的目錄繼續(xù)統(tǒng)計(jì)下去         
        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標(biāo)簽的str,當(dāng)調(diào)用這個(gè)方法并提供相應(yīng)的data時(shí),實(shí)例開(kāi)始執(zhí)行
            hp.close()#結(jié)束執(zhí)行close()

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

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

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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/38294.html

相關(guān)文章

  • python入門(mén)一個(gè)簡(jiǎn)單記事本

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

    xietao3 評(píng)論0 收藏0
  • [譯][Tkinter 教程01] 入門(mén): Label 控件

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

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

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

    cartoon 評(píng)論0 收藏0
  • Python門(mén)面擔(dān)當(dāng) - Tkinter

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

    Lucky_Boy 評(píng)論0 收藏0
  • [譯][Tkinter 教程11] 對(duì)話框和消息框

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

    Anchorer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<