在Python中,可以使用HTMLParser模块解析HTML文档。HTMLParser是Python标准库中的一个模块,用于解析HTML文档。本文将详细讲解Python中使用HTMLParser解析HTML的实例,包括两个示例。
示例一:解析HTML标签
以下是一个示例代码,演示如何使用HTMLParser解析HTML标签:
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Start tag:", tag)
for attr in attrs:
print(" attr:", attr)
def handle_endtag(self, tag):
print("End tag :", tag)
def handle_data(self, data):
print("Data :", data)
html_data = '''
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Header</h1>
<p>Paragraph</p>
</body>
</html>
'''
parser = MyHTMLParser()
parser.feed(html_data)
在上面的代码中,我们定义了一个名为MyHTMLParser的类,它继承自HTMLParser类,并重写了handle_starttag、handle_endtag和handle_data方法。然后,我们定义了一个名为html_data的变量,它包含HTML数据。最后,我们创建了一个MyHTMLParser对象,并使用feed方法将HTML数据传递给解析器。
示例二:解析HTML属性
以下是一个示例代码,演示如何使用HTMLParser解析HTML属性:
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == 'a':
for attr in attrs:
if attr[0] == 'href':
print("Link :", attr[1])
html_data = '''
<html>
<head>
<title>Example</title>
</head>
<body>
<a href="http://www.example.com">Example</a>
</body>
</html>
'''
parser = MyHTMLParser()
parser.feed(html_data)
在上面的代码中,我们定义了一个名为MyHTMLParser的类,它继承自HTMLParser类,并重写了handle_starttag方法。然后,我们定义了一个名为html_data的变量,它包含HTML数据。最后,我们创建了一个MyHTMLParser对象,并使用feed方法将HTML数据传递给解析器。在handle_starttag方法中,我们使用if语句检查标签是否为'a',如果是,则使用for循环遍历属性列表,并使用if语句检查属性名称是否为'href',如果是,则打印属性值。
总结
本文详细讲解了Python中使用HTMLParser解析HTML的实例,包括解析HTML标签和解析HTML属性。HTMLParser是Python标准库中的一个模块,用于解析HTML文档。在Python中,可以根据实际需求选择适合的解析方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中使用HTMLParser解析html实例 - Python技术站