資料:
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...