使用 Python 模塊—— HTMLParser 解析 HTML 文檔元素


這個文檔定義了一個 HTMLParser 類作為解析 HTML 文檔的基礎。
HTMLParser 類的實例可以存儲並調用方法來處理 HTML 標簽和數據。
我們一般通過建立一個 HTMLParser 的子類然后覆蓋它的方法來實現我們想要的操作。
HTMLParser 有很多方法,一般我們只需要覆蓋下面幾個方法:

HTMLParser.handle_starttag(tag, attrs)  
    #遇到一個開始標簽時就會執行這個方法  
    #tag 是遇到的標簽,attrs attrs是 (屬性,值)元組(tuple)的列表(list)。  
HTMLParser.handle_endtag(tag)  
    #遇到一個結束標簽時就會執行這個方法  
    #tag 是遇到的標簽  
HTMLParser.handle_data(data)  
    #這個方法處理標簽里面的內容  
    #data 是遇到的內容

 

我們先通過一個基本的例子來了解一下這個模塊是如何工作的

這個例子會打印出開始標簽和結束標簽以及標簽里面的內容

from HTMLParser import HTMLParser  
  
class MyHTMLParser(HTMLParser):  
    def handle_starttag(self, tag, attrs):  
        print '遇到的開始標簽:%s'%tag  
          
    def handle_endtag(self, tag):  
        print '遇到的結束標簽:%s'%tag  
          
    def handle_data(self, data):  
        print '遇到的內容:%s'%data  
          
m = MyHTMLParser()  
m.feed('<h3>標題三</h3>')

 

輸出:

遇到的開始標簽:h3  
遇到的內容:標題三  
遇到的結束標簽:h3

 

1429071883_25

我們來分析一下這個例子做了什么。首先我們建立了一個 HTMLParser 的之類,並覆蓋了它的方法。

運行時,它首先遇到了一個開始標簽 “< h3>” ,執行 HTMLParser.handle_starttag(tag, attrs) 方法,打印出開始標簽。
接着它又遇到了標簽里面的內容 “標題三” ,執行 HTMLParser.handle_data(data) ,打印出 “標題三” 。
最后它遇到結束標簽,執行 HTMLParser.handle_endtag(tag) ,打印出結束標簽。
從這個例子可以很快的理解如何使用這個模塊來分析 HTML。


免責聲明!

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



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