资料内容:
一、引言
BeautifulSoup 是一个 Python 的 HTML/XML 解析库,它可以从 HTML 或 XML 文件中提取数据。
BeautifulSoup 能够很好地处理不规范或有错误的 HTML/XML 文档,并提供了简单且省力的方
式从网页抓取数据。下面,我们将对 BeautifulSoup 的用法进行详细的解析。
二、安装与导入
首先,你需要在 Python 环境中安装 BeautifulSoup 库。可以通过 pip 命令进行安装:
```bash
pip install beautifulsoup4
``` 安装完成后,你可以在你的 Python 脚本中导入 BeautifulSoup 库:
```python
from bs4 import BeautifulSoup
```
三、基本用法
1. **读取 HTML 文档** 你可以通过打开本地 HTML 文件或通过网络请求获取 HTML 内容。例如,使用`open`函数读
取本地文件:
```python
with open('test.html', 'r', encoding='utf-8') as f:
html_doc = f.read()
``` 或者使用`requests`库获取网页内容:
```python
import requests
url = 'http://example.com' response = requests.get(url)
html_doc = response.text
```
2. **解析 HTML 文档**
使用 BeautifulSoup 解析 HTML 文档,你需要创建一个 BeautifulSoup 对象,并传入 HTML 文
档字符串和解析器。默认的解析器是`html.parser`,但你也可以选择其他解析器,如`lxml`或
`html5lib`。
```python
soup = BeautifulSoup(html_doc, 'html.parser')
```
3. **遍历解析树** BeautifulSoup 将 HTML 文档解析为一个嵌套的节点树,你可以通过遍历这个树来获取你需要的信息。每个节点都是一个对象,具有一些属性和方法。
* `Tag.name`:返回标签的名字。
* `Tag.attrs`:返回标签的属性键值对,是一个 dict 对象。
* `Tag[attr]`:获取属性值。如果属性在 HTML 中是多值属性,则返回 list 对象,否则返回 str
对象。
* `Tag.string`:返回标签内的第一个文本节点。如果标签内部有多个文本节点,则返回 None。
* `Tag.strings`:返回标签内所有文本节点,生成器类型。
* `Tag.contents`:返回子节点列表,是 list 对象。