python處理HTML與XML之獲取頁面圖片地址

#-*- coding:utf-8 -*-
#file:GetImage.py
#
import Tkinter
import HTMLParser
import urllib

#創建URL解析類
class MyHTMLParser(HTMLParser.HTMLParser):    
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.gifs=[]
        self.jpgs=[]
        self.pngs=[]
    def handle_starttag(self,tags,attrs):
        if tags=='img':
            for attr in attrs:
                for t in attr:
                    if 'gif' in t:
                        self.gifs.append(t)
                    elif 'jpg' in t:
                        self.jpgs.append(t)
                    elif 'png' in t:
                        self.pngs.append(t)
                    else:
                        pass
    def get_gifs(self):
        return self.gifs
    def get_jpgs(self):
        return self.jpgs
    def get_pngs(self):
        return self.pngs
    
#創建組件   
class Window:                               
    def __init__(self, root):
        self.root=root
        self.label=Tkinter.Label(root,text='輸入URL:')
        self.label.place(x=5,y=15)
        self.entryUrl=Tkinter.Entry(root,width=30)
        self.entryUrl.place(x=65,y=15)
        self.get=Tkinter.Button(root,text='獲取圖片',command=self.Get)
        self.get.place(x=280,y=15)
        self.edit=Tkinter.Text(root,width=470,height=600)
        self.edit.place(y=50)
    def Get(self):
        url=self.entryUrl.get()          #獲取URL
        page=urllib.urlopen(url)         #打開URL
        data=page.read()                 #讀取URL內容
        parser=MyHTMLParser()            #生成實例對象
        parser.feed(data)                #處理HTML數據
        self.edit.insert(Tkinter.END,'=====GIF====\n')
        #獲取gif圖片
        gifs=parser.get_gifs()
        for gif in gifs:
            self.edit.insert(Tkinter.END,gif+'\n')
        self.edit.insert(Tkinter.END,'============\n')
        self.edit.insert(Tkinter.END,'=====JPG====\n')
        
        #獲取jpg圖片
        jpgs=parser.get_jpgs()
        for jpg in jpgs:
            self.edit.insert(Tkinter.END,jpg+'\n')
        self.edit.insert(Tkinter.END,'============\n')
        self.edit.insert(Tkinter.END,'=====PNG====\n')

        #獲取png圖片
        pngs=parser.get_pngs()
        for png in pngs:
            self.edit.insert(Tkinter.END,png+'\n')
        self.edit.insert(Tkinter.END,'============\n')
        
        page.close()
        
root=Tkinter.Tk()
window=Window(root)
root.minsize(600,480)
root.mainloop()
            

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章