Python
- 基础
-
库
- 其他
- argparse命令行参数解析
- asyncio自带异步编程库
- aiofiles异步文件读写库
- beautifulsoup4_HTML_XML解析库
- colorama_在终端输出漂亮的字
- datasets数据集处理
- html2text
- httpx_HTTP请求库
- litellm
- loguru日志库
- numpy科学计算基础库
- pillow图像处理
- pydantic数据验证
- pyyaml
- requests_HTTP请求库
- tenacity重试
- tiktoken计算Token量
- torch机器学习_深度学习框架
- tomli TOML文件解析库
- tomllib 自带TOML文件解析库
- unidiff_文本_文件差异对比
- uvicorn_Web服务器
- langchain
**BeautifulSoup4(简称 bs4)** 是 Python 中一个非常流行的 **HTML 和 XML 解析库**,主要用于从网页(或 HTML/XML 文档)中**提取数据**,比如抓取网页中的标题、链接、表格内容等。
---
## 一、BeautifulSoup4 是什么?(简单理解)
- 它是一个**解析 HTML/XML 的工具库**,可以帮你把杂乱无章的网页源代码,变成一个**结构化的、容易操作的对象**。
- 有了它,你可以方便地**查找、提取、修改** HTML 中的标签、文本、属性等信息,常用于**网页爬虫(爬取数据)和数据清洗**。
- 它本身**不会帮你下载网页**,通常和 **requests** 库一起使用:先用 requests 获取网页 HTML,再用 BeautifulSoup 解析内容。
---
## 二、BeautifulSoup4 解决什么问题?
当你在做以下事情时,可能会用到它:
| 场景 | 说明 |
|------|------|
| **网页爬虫(爬数据)** | 从网站上提取需要的内容,比如新闻标题、商品价格、图片链接等 |
| **数据提取** | 从复杂的 HTML 页面中精准获取某一部分内容 |
| **数据清洗** | 对 HTML 格式的内容进行整理、提取文本、去除标签等 |
| **自动化处理网页内容** | 比如提取表格数据、解析文档结构等 |
---
## 三、BeautifulSoup4 常见用途举例
### 1. 提取网页中的标题
```python
from bs4 import BeautifulSoup
import requests
url = "https://example.com"
html = requests.get(url).text # 获取网页源码
soup = BeautifulSoup(html, 'html.parser') # 解析 HTML
title = soup.title.text # 获取 标签中的文本
print(title)
```
### 2. 提取所有的链接( 标签)
```python
links = soup.find_all('a') # 找出所有 标签
for link in links:
print(link.get('href')) # 打印链接地址
```
### 3. 提取特定 class 或 id 的内容
```python
# 找到 class 为 "content" 的 div 标签
content_div = soup.find('div', class_='content')
print(content_div.text)
# 或者找 id 为 "main" 的元素
main = soup.find(id='main')
```
---
## 四、安装 BeautifulSoup4
使用 pip 安装:
```bash
pip install beautifulsoup4
```
🔧 **注意:BeautifulSoup4 只是一个解析库,要获取网页内容,通常还需要安装 requests:**
```bash
pip install requests
```
---
## 五、BeautifulSoup4 支持多种解析器
在创建 BeautifulSoup 对象时,可以指定解析器,常见的有:
| 解析器 | 说明 | 是否需要额外安装 |
|--------|------|----------------|
| `'html.parser'` | Python 内置,轻量级 | ❌ 不需要 |
| `'lxml'` | 速度快,功能强大 | ✅ 需要:`pip install lxml` |
| `'html5lib'` | 容错性强,适合不规范 HTML | ✅ 需要:`pip install html5lib` |
🔧 推荐组合:
```python
soup = BeautifulSoup(html内容, 'lxml') # 速度快,推荐
# 或
soup = BeautifulSoup(html内容, 'html.parser') # Python 自带,无需安装
```
---
## 六、总结(中文)
> **BeautifulSoup4(bs4)是 Python 中用于解析和提取 HTML/XML 数据的一个库,简单易用,功能强大,特别适合网页爬虫和数据提取任务。**
>
> 它通常与 `requests` 一起使用:先获取网页内容,再用 BeautifulSoup 解析和提取想要的信息,是 Python 爬虫开发中最常用的工具之一。
---
✅ **简单来说:**
> 如果你想从网页中“捞数据”,比如抓标题、链接、图片、表格等,BeautifulSoup4 就是你最常用的“数据提取工具”。