python模塊之HTMLParser之穆雪峰的案例(理解其用法原理)


# -*- 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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM