HTMLParser 學習筆記

2021-08-18 23:05:59 字數 1583 閱讀 6687

資料:

html屬於xml的子集,但是格式不像xml這麼嚴格,不能用標準的 dom 或 sax 來解析 html

python中自帶了乙個類htmlparser用來解析html

我們可以看到,htmlparser裡面很多方法都是空的,如果需要使用,需要重寫方法

# overridable -- finish processing of start+end tag: def handle_startendtag(self, tag, attrs):

self.handle_starttag(tag, attrs)

self.handle_endtag(tag)

# overridable -- handle start tag

def handle_starttag(self, tag, attrs):

pass

# overridable -- handle end tag

def handle_endtag(self, tag):

pass

# overridable -- handle data

def handle_data(self, data):

pass

進行簡單的方法重寫:

#解析屬性

def handle_starttag(self, tag, attrs):

print("start tag:", tag)

for attr in attrs:

print(" attr:", attr)

#解析結束標籤

def handle_endtag(self, tag):

print("end tag :", tag)

#解析資料

def handle_data(self, data):

print("data :", data)

#解析注釋

def handle_comment(self, data):

print("comment :", data)

#解析實體字元

def handle_entityref(self, name):

c = chr(name2codepoint[name])

print("named ent:", c)

def handle_charref(self, name):

if name.startswith('x'):

c = chr(int(name[1:], 16))

else:

c = chr(int(name))

print("num ent :", c)

#解析文件型別申明

def handle_decl(self, data):

print("decl :", data)

parser = myhtmlparser()

parser.feed('''

some html html tutorial...

end''')

HtmlParser程式設計

htmlparser 提供了強大的類庫來處理 internet 上的網頁,可以實現對網頁特定內容的提取和修改。1.迴圈迭代所有節點 迭代所有節點 param list param keyword public static void processnodelist nodelist list,str...

htmlParser 工具類使用筆記

鏈結過濾器 parser linkparser new parser 屬性過濾器 hasattributefilter tagfilter new hasattributefilter class info hasattributefilter downloadlinkfilter new hasa...

HTML Parser 簡單解釋

html parser 是乙個非常強大的用於處理 html 解析的模組。html parser 的文件沒有乙個完整的例子。所以我就把下面的我寫在 shellweb 裡的例子摘取出來,並簡單的解釋一下。use html parser my parser html parser new api vers...