1. 程式人生 > >Python解析HTML定位元素(內容)HTMLParser demo

Python解析HTML定位元素(內容)HTMLParser demo

前情提要: 手上有個報告HTML,要抓取其中的資料內容。HTML檔案內容較多,相同標籤更多,不能更改。所以,選擇按內容定位,套用迴圈和判斷,將需要的資料放入列表list裡。
程式碼呈現:

from HTMLParser import HTMLParser
import HTMLParser

class TitleParser(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.handledtags = ['title','body']
        self.processing = None
        self.data = []
 
    def handle_starttag(self,tag,attrs):
        if tag in self.handledtags:
            self.processing = tag
 
    def handle_data(self,data):
        if self.processing:
            self.data.append(data)
 
    def handle_endtag(self,tag):
        if tag == self.processing:
            self.processing = None
 
if __name__ == '__main__':
    fd = open('index.html')
    tp = TitleParser()
    tp.feed(fd.read())
    a =['none']
    for each in tp.data:
        
        if each == 'Statistics:':
            #print each
            i = 0
            a = [each]
            #print a

        if each == 'Parameters:':
            break   

        if a[0] ==  'Statistics:' and ('\n' not in each):
            a.append(each)
            #print each

    print a

結果

['Statistics:', 'Statistics:', 'Mean TTFF:', ' 37.048 ', 'Standard Deviation TTFF:', ' 19.634 ', 'CEP50:', ' 0.522 ', 'CEP95:', ' 1.515 ']