HTMLParser是什么?
- 一个用来处理html的类
- 属于模块:html.parser
- 处理数据:通过传入html data, 这个类的实例调用相应的方法进行处理
- 使用时,应当由HTMLParser派生出自己的类,并override需要的函数来作实际的处理。
- 详细说明 →_→ docs.python.org/3/library
使用
导入模块
#/usr/bin/env python3
from html.parser import HTMLParser
定义自己的类
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)
def handle_endtag(self, tag):
print("Encountered an end tag :", tag)
def handle_data(self, data):
print("Encountered some data :", data)
解析数据
parser = MyHTMLParser()
data = urllib.request.urlopen('http://www.baidu.com').read().decode('utf-8')
parser.feed(data)
输出:
Decl : DOCTYPE html
Comment : STATUS OK
Start tag: html
Start tag: head
Start tag: meta
attr: ('http-equiv', 'content-type')
attr: ('content', 'text/html;charset=utf-8')
Start tag: meta
attr: ('http-equiv', 'X-UA-Compatible')
attr: ('content', 'IE=Edge')
...