核心机制:事件驱动的解析
HTMLParser工作原理是逐字符扫描输入,识别到标签/文本时触发对应回调方法:
from html.parser import HTMLParser
class MyParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print(f"开始标签: <{tag}>, 属性: {dict(attrs)}")
def handle_data(self, data):
if data.strip():
print(f"文本内容: '{data.strip()}'")
def handle_endtag(self, tag):
print(f"结束标签: </{tag}>")
parser = MyParser()
parser.feed('<div class="header"><h1>标题</h1></div>')
实战示例:提取网页所有链接
class LinkExtractor(HTMLParser):
def __init__(self):
super().__init__()
self.links = []
def handle_starttag(self, tag, attrs):
if tag == 'a': # 仅处理<a>标签
# 查找href属性 (attrs为元组列表: [(属性名, 值), ...])
href = next((v for k, v in attrs if k == 'href'), None)
if href:

最低0.47元/天 解锁文章
31万+

被折叠的 条评论
为什么被折叠?



