文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Beautiful Soup 安装解析器
BeautifulSoup
是从 HTML 或者 XML 中提取数据的 Python 库。目前 Beautiful Soup 3
已经停止开发,推荐在现在的项目中使用 Beautiful Soup 4
, 安装的命令为 pip install beautifulsoup4
。
如果执行命令
pip install beautifulsoup
则安装的是Beautiful Soup 3
一、安装解析器
BeautifulSoup
支持 Python
标准库中的 HTML 解析器,还支持一些第三方解析器,如 lxml
和 html5lib
。 其中 lxml
性能较好(C 语言实现的), html5lib
是纯 Python 实现,其解析方式与浏览器相同。 安装方式为: pip install lxml
、 pip install html5lib
。
1. 使用解析器
- Python 内置标准库解析
HTML
:BeautifulSoup(markup,'html.parser')
。速度适中,容错能力强 lxml
解析HTML
:BeautifulSoup(markup,'lxml')
。速度快,容错能力强lxml
解析XML
:BeautifulSoup(markup,'xml')
或者BeautifulSoup(markup,['lxml','xml'])
。速度快,唯一支持xml
的解析器html5lib
解析HTML
:BeautifulSoup(markup,'html5lib')
。速度慢,最好的容错性。 以浏览器的方式解析文档,可以生成 HTML5 格式的文档。
如果第二个参数为空,那么 BeautifulSoup
根据当前系统安装的库自动选择解析器,并且默认解析为 HTML
。解析器的优先顺序: lxml>html5lib>Python 标准库
。如果想解析成 XML
,则必须第二个参数传入 XML
。
markup
为待解析的字符串或者一个文件对象。文档首先被转换成字符串,并且所有的HTML Entity
都被转义处理。
a. 解析器之间的区别
BeautifulSoup
为不同解析器提供了相同的接口,但是解析器本身是有区别的。同一份文档被不同解析器解析后可能生成不同结构的树型文档。
- 如果被解析的是标准
HTML
格式,则解析器之间解析结果没有任何区别,只是解析速度不同。返回的文档树完全相同。 - 如果被解析的不是标准
HTML
文档,那么不同解析器的解析结果可能不同。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论