用python的htmlparser怎么爬取内容
时间: 2023-10-10 11:14:18 浏览: 67
使用Python的html.parser模块可以很方便地爬取网页内容。下面是一些基本的步骤:
1. 导入模块
```python
from html.parser import HTMLParser
```
2. 继承HTMLParser类
```python
class MyHTMLParser(HTMLParser):
def __init__(self):
super().__init__()
```
3. 实现处理函数
在MyHTMLParser类中实现处理函数,这些函数将在解析HTML文档的过程中被调用。
```python
def handle_starttag(self, tag, attrs):
pass
def handle_endtag(self, tag):
pass
def handle_data(self, data):
pass
```
其中,handle_starttag()函数处理开始标签,handle_endtag()函数处理结束标签,handle_data()函数处理标签之间的文本数据。
4. 创建实例并解析HTML文档
```python
parser = MyHTMLParser()
parser.feed(html_doc)
```
其中,html_doc是要解析的HTML文档。
5. 处理结果
解析完成后,可以从MyHTMLParser实例中获取解析结果。
```python
result = parser.result
```
完整的代码示例:
```python
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
super().__init__()
self.result = []
def handle_starttag(self, tag, attrs):
self.result.append(tag)
def handle_endtag(self, tag):
pass
def handle_data(self, data):
self.result.append(data)
html_doc = """
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Heading</h1>
<p>Paragraph</p>
</body>
</html>
"""
parser = MyHTMLParser()
parser.feed(html_doc)
print(parser.result)
```
输出结果:
```
['html', 'head', 'title', 'Example', 'title', 'head', 'body', 'h1', 'Heading', 'h1', 'p', 'Paragraph', 'p', 'body', 'html']
```
这个示例只是简单地将标签和文本数据存储在了一个列表中,实际应用中需要根据具体需求进行处理。
阅读全文