一、BeautifulSoup4简介 #
BeautifulSoup4 是Python中最流行的HTML/XML解析库之一,常用于网页抓取和数据提取。
二、安装方法 #
介绍如何安装BeautifulSoup4及其依赖。
# 安装BeautifulSoup4主库
pip install beautifulsoup4
# 推荐安装lxml解析器以提升解析速度
pip install lxml三、基本用法 #
本节介绍如何用BeautifulSoup4解析HTML、查找元素和提取内容。
1. 解析HTML文档 #
展示如何加载和解析HTML字符串。
`python
导入BeautifulSoup模块 #
from bs4 import BeautifulSoup
定义HTML字符串 #
html = """
欢迎 #
这是一个BeautifulSoup4示例。
"""创建BeautifulSoup对象,使用lxml解析器 #
soup = BeautifulSoup(html, 'lxml')
打印格式化后的HTML #
print(soup.prettify())
### 2. 查找元素
> 展示如何查找标签、类名、id等元素。
```python
# 导入BeautifulSoup模块
from bs4 import BeautifulSoup
# 定义HTML字符串
html = """
标题 #
信息段落
"""
# 创建BeautifulSoup对象
soup = BeautifulSoup(html, 'lxml')
# 查找第一个h1标签
h1_tag = soup.find('h1')
# 打印h1标签内容
print(h1_tag.text)
# 查找class为info的p标签
p_tag = soup.find('p', class_='info')
# 打印p标签内容
print(p_tag.text)3. 提取属性和文本内容 #
展示如何提取标签属性和纯文本。
`python
导入BeautifulSoup模块 #
from bs4 import BeautifulSoup
定义HTML字符串 #
html = "点击这里"
创建BeautifulSoup对象 #
soup = BeautifulSoup(html, 'lxml')
查找a标签 #
a_tag = soup.find('a')
提取href属性 #
print(a_tag['href'])
提取id属性 #
print(a_tag['id'])
提取文本内容 #
print(a_tag.text)
## 四、进阶用法
> 本节介绍CSS选择器、遍历、修改和输出等高级用法。
### 1. CSS选择器查找
> 展示如何用select方法进行复杂元素查找。
```python
# 导入BeautifulSoup模块
from bs4 import BeautifulSoup
# 定义HTML字符串
html = """
内容1内容2
"""
# 创建BeautifulSoup对象
soup = BeautifulSoup(html, 'lxml')
# 使用CSS选择器查找所有class为box的div下的span
spans = soup.select('div.box > span')
# 遍历并打印span内容
for span in spans:
print(span.text)2. 遍历与节点关系 #
展示如何遍历父节点、子节点、兄弟节点。
`python
导入BeautifulSoup模块 #
from bs4 import BeautifulSoup
定义HTML字符串 #
html = "
- 苹果
- 香蕉
- 橙子
创建BeautifulSoup对象 #
soup = BeautifulSoup(html, 'lxml')
查找ul标签 #
ul = soup.find('ul')
遍历所有li子节点 #
for li in ul.find_all('li'): print(li.text)
获取第一个li的下一个兄弟节点 #
first_li = ul.find('li') next_li = first_li.find_next_sibling('li') print(next_li.text)
### 3. 修改与输出
> 展示如何修改标签内容并输出新的HTML。
```python
# 导入BeautifulSoup模块
from bs4 import BeautifulSoup
# 定义HTML字符串
html = "原始内容
"
# 创建BeautifulSoup对象
soup = BeautifulSoup(html, 'lxml')
# 查找p标签
p = soup.find('p')
# 修改p标签内容
p.string = "新内容"
# 输出修改后的HTML
print(soup.prettify())五、常见应用场景 #
BeautifulSoup4 常用于以下场景:
- 网页爬虫与数据提取
- 自动化表单/信息采集
- HTML/XML数据清洗与转换
- 结构化内容分析
六、参考资料 #
推荐学习和查阅的BeautifulSoup4相关资料。