Beautiful Soup 是一个强大的解析工具,借助网页的结构和属性等特性来解析网页。有了它就不用写一些复杂的正则表达式,只需要简单的
几局,就可以完成网页中某个元素的提取
BeautifulSoup就是python中的一个HTML或XML的解析库。可以用它方便的从网页中提取数据
特性:
- 简单,用来处理导航、搜索、修改分析树等功能
- 它是一个工具箱,通过解析文档用户提供需要抓取的数据
- 可以自动将输入文档自动转换为Unicode编码,输出文档转换为UTF-8编码。不需要考虑编码方式,除非文档没有指定一个编码方式,这时
仅仅需要说明一下原始编码方式就可以了
BeautifulSoup已成为 lxml、html6lib一样出色的Python解释器,为用户提供不同的解析策略和更快的速度
安装: 安装好BeautifuSoup 和 lxml
安装命令: pip install bs4 pip install lxml
BeautifulSoup支持的解析器:
1.
解析器: Python标准库
使用方法: BeautifuSoup(markup,‘html.parser’)
优势: Python的内置标准库,执行速度适中,文档容错能力强
劣势: Python2.7.3及Python3.2.2之前的版本文档容错能力差
lxml HTML解析器
使用方法: BeautifulSoup(markup,‘lxml’)
优势: 速度快、文档容错能力强
劣势: 需要安装C语言库
html XML解析器
使用方法:BeautifulSoup(markup,‘xml’)
优势:速度快、唯一支持XML的解析器
劣势: 需要安装C语言库
html5lib
使用方法:BeautifulSoup(markup,‘html5lib’)
优势: 最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档
劣势: 速度慢、不依赖外部扩展
通过以上对比可以看出,lxml解析器有解析HTML和XML的功能,而且速度快、容错能力强,所以推荐使用它(lxml)
如果使用lxml,那么在初始化BeautifulSoup 时,可以把第二个参数改为lxml即可 :
from bs4 import BeautifulSoup
soup = BeautifulSoup(‘
Hello
’,‘lxml’)print(soup.p.string)
BeautifulSoup具体用法去谷歌搜索资料即可