用HTMLParser解析html页面
时间: 2024-05-13 19:18:52 浏览: 8
HTMLParser是Python内置的一个模块,用于解析HTML页面。以下是一个简单的示例:
```python
from html.parser import HTMLParser
# 定义一个继承自HTMLParser的子类
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("开始标签:<{}>".format(tag))
for attr in attrs:
print("属性值:", attr)
def handle_endtag(self, tag):
print("结束标签:</{}>".format(tag))
def handle_data(self, data):
print("数据:", data)
# 实例化一个MyHTMLParser对象
parser = MyHTMLParser()
# 解析HTML页面
html = """
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Header</h1>
<p>Some text here</p>
</body>
</html>
"""
parser.feed(html)
```
输出结果:
```
开始标签:<html>
开始标签:<head>
开始标签:<title>
数据: Test
结束标签:</title>
结束标签:</head>
开始标签:<body>
开始标签:<h1>
数据: Header
结束标签:</h1>
开始标签:<p>
数据: Some text here
结束标签:</p>
结束标签:</body>
结束标签:</html>
```
可以看到,我们定义了一个子类MyHTMLParser,重写了其中的三个方法`handle_starttag()`、`handle_endtag()`和`handle_data()`,用于处理开始标签、结束标签和数据。在主程序中,我们实例化了一个MyHTMLParser对象,然后调用`feed()`方法来解析HTML页面。最后,HTML页面中的标签和数据被依次输出。