1、BS4简介
- BeautifulSoup(简称 BS4) 是一个用于解析 HTML 和 XML 文档的 Python 第三方库。
- 它能够从网页或其他 HTML/XML 格式的文本中提取数据,并将其转换为结构化的对象,方便开发者快速定位、提取和操作所需信息。
- 它的核心功能是通过解析器将无序的标记语言转换为树形结构(DOM 树),使数据提取过程更加直观和高效。
2、特点与优势
- 简单易用:提供简洁的 API,即使是新手也能快速上手,无需深入掌握复杂的 HTML 解析原理。
- 兼容性强:支持多种解析器(如 Python 内置的html.parser、lxml等),可根据需求选择效率更高的解析方式。
- 灵活处理:能处理不规范的 HTML 代码(如标签缺失闭合、格式混乱等),适应性强。
- 高效提取:通过标签名、类名、ID、属性等多种方式定位元素,支持 CSS 选择器和正则表达式,提取数据更精准。
3、BS4安装
-
Linux系统安装
$ sudo apt-get install python-bs4
-
Mac系统安装
$ pip install bs4
-
Windows系统安装
$ pip install bs4
4、BS4使用
- BeautifulSoup 的核心功能及常用操作
1. 解析文档
- 基本使用
html = '''<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>首页</title> </head> <body><h1>音乐</h1><p class="content">张韶涵</p><ul><li><a href="/first">1 阿刁</a></li><li><a href="/second">2 墨色回响</a></li><li><a href="/third">3 无名之辈</a></li></ul> </body> </html>'''soup = BeautifulSoup(html, 'html.parser') # 使用html.parser解析器
1 从字符串解析
- 常见解析器
解析器 | 优势 | 劣势 | 安装方式 |
---|---|---|---|
html.parser | Python 内置,无需额外安装 | 功能较简单,效率一般 | 无需安装 |
lxml | 效率高,支持 XML 解析 | 需要额外安装 | pip install lxml |
html5lib | 解析规则更接近浏览器 | 效率较低 | pip install html5lib |
2. 元素定位
- 常见使用
- 通过标签名直接访问:soup.h1(获取第一个<h1>标签)
- 通过属性查找:soup.find(‘p’, class_=‘content’)(查找 class 为 content 的 p 标签)
- 通过 CSS 选择器:soup.select(‘p.conten