from html.parser import HTMLParser
# 创建一个HTML解析器类,继承自HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
# 当遇到开始标签时调用
print(f"Start tag: {tag}")
for attr in attrs:
print(f" attr: {attr}")
def handle_endtag(self, tag):
# 当遇到结束标签时调用
print(f"End tag : {tag}")
def handle_data(self, data):
# 当遇到数据(文本内容)时调用
if data.strip(): # 只打印非空白字符的数据
print(f"Data : {data.strip()}")
# 示例HTML字符串
html_content = """
<html>
<head><title>Test Page</title></head>
<body>
<h1>Hello, world!</h1>
<p>This is a <a href='https://example.com'>link</a>.</p>
</body>
</html>
"""
# 创建解析器实例并解析HTML内容
parser = MyHTMLParser()
parser.feed(html_content)
html.parser
模块中的HTMLParser
类来创建自定义的HTML解析器。MyHTMLParser
类继承自HTMLParser
,并重写了三个方法:handle_starttag(tag, attrs)
:当解析器遇到开始标签(如<html>
、<p>
等)时调用。handle_endtag(tag)
:当解析器遇到结束标签(如</html>
、</p>
等)时调用。handle_data(data)
:当解析器遇到标签之间的文本内容时调用。html_content
包含了一个简单的HTML文档结构。parser.feed(html_content)
将HTML内容传递给解析器进行解析,并输出解析结果。希望这个示例对你理解HTML解析器有所帮助!
上一篇:html中空格代码
下一篇:浏览器不支持html5播放器
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站