返回介绍

Beautiful Soup 安装解析器

发布于 2024-05-19 17:33:37 字数 1936 浏览 0 评论 0 收藏 0

BeautifulSoup 是从 HTML 或者 XML 中提取数据的 Python 库。目前 Beautiful Soup 3 已经停止开发,推荐在现在的项目中使用 Beautiful Soup 4 , 安装的命令为 pip install beautifulsoup4

如果执行命令 pip install beautifulsoup 则安装的是 Beautiful Soup 3

一、安装解析器

BeautifulSoup 支持 Python 标准库中的 HTML 解析器,还支持一些第三方解析器,如 lxmlhtml5lib 。 其中 lxml 性能较好(C 语言实现的), html5lib 是纯 Python 实现,其解析方式与浏览器相同。 安装方式为: pip install lxmlpip install html5lib

1. 使用解析器

  • Python 内置标准库解析 HTMLBeautifulSoup(markup,'html.parser') 。速度适中,容错能力强
  • lxml 解析 HTMLBeautifulSoup(markup,'lxml') 。速度快,容错能力强
  • lxml 解析 XMLBeautifulSoup(markup,'xml') 或者 BeautifulSoup(markup,['lxml','xml']) 。速度快,唯一支持 xml 的解析器
  • html5lib 解析 HTMLBeautifulSoup(markup,'html5lib') 。速度慢,最好的容错性。 以浏览器的方式解析文档,可以生成 HTML5 格式的文档。

如果第二个参数为空,那么 BeautifulSoup 根据当前系统安装的库自动选择解析器,并且默认解析为 HTML 。解析器的优先顺序: lxml>html5lib>Python 标准库 。如果想解析成 XML ,则必须第二个参数传入 XML

markup 为待解析的字符串或者一个文件对象。文档首先被转换成字符串,并且所有的 HTML Entity 都被转义处理。

使用解析器

a. 解析器之间的区别

BeautifulSoup 为不同解析器提供了相同的接口,但是解析器本身是有区别的。同一份文档被不同解析器解析后可能生成不同结构的树型文档。

  • 如果被解析的是标准 HTML 格式,则解析器之间解析结果没有任何区别,只是解析速度不同。返回的文档树完全相同。
  • 如果被解析的不是标准 HTML 文档,那么不同解析器的解析结果可能不同。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文