BeautifulSoup是一个用于从HTML和XML文件中提取数据的Python库。BeautifulSoup提供一些简单的、函数用来处理导航、搜索、修改分析树等功能。BeautifulSoup模块中的查找提取功能非常强大,而且非常便捷,它通常可以节省程序员数小时或数天的工作时间。
BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为UTF-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,BeautifulSoup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
1、安装,先装bs4,再装BeautifulSoup4
BeautifulSoup支持python标准库中包含的HTML解析器,但它也支持许多第三方python解释器,其中包含lxml解释器。这个安装就行。
另一个解释器是html5lib,它是一个解析HTML的python库,按照web浏览器的方式解析HTML。这个安装就行
解释器的优缺点:
解释器 | 用法 | 优点 | 缺点 |
Python标准库 | BeautifulSoup(markup,'html.parser') | Python标准库 执行速度适中 | 部分版本中文档容错能力差 |
lxml的HTML解释器 | BeautifulSoup(markup,'lxml') | 速度快,文档容错能力强 | 需要安装c语言库 |
lxml的XML解释器 | BeautifulSoup(markup,'lxml-xml') BeautifulSoup(markup,'xml') | 速度快 唯一支持xml的解析器 | 需要安装c语言库 |
html5lib | BeautifulSoup(markup,'html5lib') | 最好的容错性 以浏览器的方式解析文档生成HTML5格式的文档 | 速度慢 不依赖外部扩展 |
2、BeautifulSoup的使用
下面用BeautifulSoup进行HTML的解析工作,具体如下:
from bs4 import BeautifulSoup #创建一个BeautifulSoup对象,获取页面正文 soup=BeautifulSoup(open('test.html'),features='lxml') print(soup.prettify()) #打印格式化后的代码