# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模塊之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblogs.com/xiaowuyi/archive/2012/10/15/2721658.html #常見做法:首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_starttag()方法,我們將使用這個方法來顯示所有標簽的HRef屬性值。 from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def handle_starttag(self, tag, attrs): #print('<開始標簽:%s>' % tag) #print '---------some img--------' if tag=='img': #print attrs#[('src', 'python-logo.png'), ('alt', 'The Python logo')] for k ,v in attrs: print k,v else: pass def handle_endtag(self, tag): print('<結束標簽:/%s>' % tag) def handle_startendtag(self, tag, attrs): print('<%s/>' % tag) def handle_data(self, data): print 'data:',data def handle_comment(self, data): print '<!-- -->',data def handle_decl(self, decl): print '文檔類型聲明:',decl ''' def handle_entityref(self, name):#處理一些特殊字符,以&開頭的 print('&%s;' % name) def handle_charref(self, name):#處理特殊字符串,就是以&#開頭的,一般是內碼表示的字符 print('&#%s;' % name) ''' parser = MyHTMLParser() content=''''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" <html> <head> </head> <body> <p>Some <a href=\"#\">html</a> tutorial...<br>END <!-- i am Notes Content--> <img src="python-logo.png" alt="The Python logo"> </p> </body> </html> ''' import urllib html=urllib.urlopen('http://www.163.com').read() #parser.feed(html) parser.feed(content) parser.close()