beautiful soup是python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解beautiful soup的深入使用、节点选择器、css选择器、beautiful soup4的方法选择器等重要知识点,是学好爬虫的基础课程。
1. 简介
beautiful soup的特点:
- api简单,功能强大
beautiful soup提供一些简单的方法和python式函数,用于浏览,搜索和修改解析树,它是一个工具箱,通过解析文档为用户提供需要抓取的数据。
- 支持多种解析器
beautiful soup支持多种解析器,包括python标准库中的html解析器,还支持一些第三方的解析器。
- 自动实现编码的转换
beautiful soup 自动将输入文档转换成unicode类型,输出文档转换为utf-8编码。如果文档中没有指定编码,只需我们指定编码即可。
2. 安装beautiful soup
目前beautiful soup的最新版本是4.x
,之前的版本已经停止开发了,所以这里推荐使用beautifulsoup4
。
安装beautifulsoup4方式:
pip3 install beautifulsoup4
命令执行完毕之后即可完成安装
3. beautiful soup解析器
3.1 解析器的安装方法
安装lxml
beautiful soup
的html和xml解析器是依赖于lxml
库的,所以在使用之前先安装lxml
库。(如果已经安装,请跳过此步)
pip3 install lxml
安装html5lib
另一个可供选择的解析器是纯python实现的html5lib
,html5lib
的解析方式与浏览器相同,可以选择下列方法来安装html5lib
。
pip3 install html5lib
3.2 解析器的优缺点
下表列出了beautiful soup支持的主要的解析器以及它们的优缺点:
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
python标准库 | beautifulsoup(markup, "html.parser") |
python的内置标准库、执行速度适中、文档容错能力强 | python 2.7.3 or 3.2.2前的版本文档容错能力差 |
lxml html 解析器 | beautifulsoup(markup, "lxml") |
速度快、文档容错能力强 | 需要安装c语言库 |
lxml xml解析器 | beautifulsoup(markup, ["lxml", "xml"]) ,beautifulsoup(markup, "xml") |
速度快、唯一支持xml的解析器 | 需要安装c语言库 |
html5lib | beautifulsoup(markup, "html5lib") |
最好的容错性、以浏览器的方式解析文档、生成html5格式的文档 | 速度慢、不依赖外部扩展 |
推荐使用lxml
作为解析器,因为效率更高。在python2.7.3之前的版本和python3中3.2.2之前的版本,必须安装lxml
或html5lib
,因为那些版本python版本的标准库中内置的html解析方法不够稳定。