HTML操做是编程中很重要的一块,下面用Python3.x中的html.parser中的HTMLParser类来进行HTML的解析。html
class html.parser.HTMLParser(*, convert_charrefs=True)
HTMLParser.
close
():当遇到文件结束标签后进行的处理方法。若是子类要复写该方法,须要首先调用HTMLParser累的close()HTMLParser.
reset
():重置HTMLParser实例,该方法会丢掉未处理的html内容HTMLParser.
getpos
():返回当前行和相应的偏移量HTMLParser.
handle_starttag
(tag, attrs):对开始标签的处理方法。例如<div id="main">,参数tag指的是div,attrs指的是一个(name,Value)的列表HTMLParser.
handle_endtag
(tag):对结束标签的处理方法。例如</div>,参数tag指的是divHTMLParser.
handle_data
(data):对标签之间的数据的处理方法。<tag>test</tag>,data指的是“test”HTMLParser.
handle_comment
(data):对HTML中注释的处理方法。__author__ = 'xua' import json #For python 3.x from html.parser import HTMLParser #定义HTMLParser的子类,用以复写HTMLParser中的方法 class MyHTMLParser(HTMLParser): #构造方法,定义data数组用来存储html中的数据 def __init__(self): HTMLParser.__init__(self) self.data = [] #覆盖starttag方法,能够进行一些打印操做 def handle_starttag(self, tag, attrs): pass #print("Start Tag: ",tag) #for attr in attrs: # print(attr) #覆盖endtag方法 def handle_endtag(self, tag): pass #覆盖handle_data方法,用来处理获取的html数据,这里保存在data数组 def handle_data(self, data): if data.count('\n') == 0: self.data.append(data) #读取本地html文件.(固然也能够用urllib.request中的urlopen来打开网页数据并读取,这里不作介绍) htmlFile = open(r"/Users/xualvin/Downloads/TFS.htm",'r') content = htmlFile.read() #建立子类实例 parser = MyHTMLParser() #将html数据传给解析器进行解析 parser.feed(content) #对解析后的数据进行相应操做并打印 for item in parser.data: if item.startswith("{\"columns\""): payloadDict = json.loads(item) list = payloadDict["payload"]["rows"] for backlog in list: if backlog[1] == "Product Backlog Item" or backlog[1] == "Bug": print(backlog[2]," Point: ",backlog[3])