htmlparser是處理html/xhtml檔案最基本的工具
採用的是一種事件驅動的模式,在遇到標籤、注釋等時自動呼叫已經使用者自定義的函式處理。
ps:不會檢查標籤是否閉合o(╯□╰)o
一些方法:
htmlparser.
feed
(data
) 將文字傳入解析器,data為unicode或str
htmlparser.
close()
htmlparser.
reset()
其他的就是一些handle開頭的處理函式
具體看**吧
# coding=gbk
'''created on 2013-3-29
@author: yoda
'''from htmlparser import htmlparser
class myhtmlparser(htmlparser):
#e.g.
#decl = 'doctype html'
def handle_decl(self, decl):
print "處理頭文件: ", decl
#e.g. #tag = 'div'
#attrs = [('id','test'),('class','testc')]
def handle_starttag(self, tag, attrs):
print "遇到標籤開始時處理:", tag
for attr in attrs:
print " attr:", attr
#e.g.
#tag = 'div'
def handle_endtag(self, tag):
print "遇到標籤結束時處理 :", tag
#e.g.
def handle_startendtag(self, tag, attrs):
print "處理自閉合的標記: ", tag
for attr in attrs:
print " attr:", attr
#data = text
def handle_data(self, data):
print "遇到普通文字時處理:", data
#data = comment
def handle_comment(self, data):
print "遇到注釋時處理:", data
#e.g. >
#name = 'gt'
def handle_entityref(self,name):
print "處理實體字元", name
#e.g. > is >/>
#name = '62' or 'x3e'
def handle_charref(self,name):
print "處理十進位制或十六進製制的字串", name
if __name__ == '__main__':
parser = myhtmlparser()
parser.feed(''
'>parse me!>>''''
'')
結果:
處理頭文件: doctype html public "-//w3c//dtd html 4.01//en"
遇到標籤開始時處理: head
遇到標籤開始時處理: title
attr: ('id', 'titleid')
遇到普通文字時處理: 標題
遇到標籤結束時處理 : title
遇到標籤結束時處理 : head
遇到標籤開始時處理: body
遇到標籤開始時處理: h1
處理實體字元 gt
遇到普通文字時處理: parse me!
處理十進位制或十六進製制的字串 62
處理十進位制或十六進製制的字串 x3e
處理自閉合的標記: img
attr: ('src', 'python-logo.png')
attr: ('alt', 'the python logo')
遇到注釋時處理: 注釋文字
處理自閉合的標記: br
遇到標籤結束時處理 : body
遇到標籤結束時處理 : html
python內建型別 python列表內建型別方法
列表操作方法 對列表l操作 例如list range 1,5 即 list 1,2,3,4 不含最後乙個元素 list range 1,10,2 即 list 1,3,5,7,9 在列表末尾新增新的物件 2 list.count obj 統計某個元素在列表 現的次數 3 list.extend se...
python內建模組 Python 內建模組
內建模組 python有一套很有用的標準庫 standard library 標準庫會隨著python直譯器,一起安裝在你的電腦中的。它是python的 乙個組成部分。這些標準庫是python為你準備好的利器,可以讓程式設計事半功倍。常用標準庫 標準庫 說明 builtins 內建函式預設載入 os...
python重寫內建函式 python 內建函式
說明 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。語法 zip iterable1,iterable2,引數 iterable 乙個或多...