Python爬虫之Beautiful soup模块1

1、Beautiful soup与Xpath对比

相同点:用来解析HTML和XML,并从中提取数据
独有的特点:

  • API简单,功能强大
  • 支持多种解析器
  • 自动实现编码的转换

2、Beautiful soup的特点

  • API简单,功能强大

Beautiful Soup提供一些简单的方法和Python式函数,用于浏览,搜索和修改解析树,它是一个工具箱,通过解析文档为用户提供需要抓取的数据。

  • 支持多种解析器

Beautiful Soup支持多种解析器,包括Python标准库在的HTML解析器,还支持一些

  • 自动实现编码的转换

Beautiful Soup自动将输入文档转换成Unicode类型,输出文档转换为UTF-8编码。如果文档中没有指定编码,只需我们指定编码即可。

3、安装Beautiful Soup

目前Beautiful Soup的最新版本是4.x,之前的版本已经停止开发了,所以这里推荐使用Beautiful Soup4。

安装beautifulsoup的方式

pip install beautifulsoup4

命令执行完毕后即可完成安装。

Python爬虫之Beautiful soup模块1_第1张图片

4、Beautiful soup解析器

beautifulsoup所支持的解析器:

  1. Python标准库中的HTML解析器
  2. lxml解析器
  3. html5lib解析器

4.1、解析器的安装方法

4.1.1、安装lxml

Beautiful soup的HTML和XML解析器是依赖于lxml库的,所以在使用之前先安装lxml库。(如果已经安装,请跳过此步)

pip3 install lxml

4.1.2、安装html5lib

另一个可供选择的解析器是纯Python实现的html5libhtml5lib的解析方法与浏览器相同,可以选择下列方法来安装html5lib

pip3 install html5lib

Python爬虫之Beautiful soup模块1_第2张图片

4.2、解析器的优缺点

下表列出了Beautiful Soup支持的主要的解析器以及他们的优缺点

解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup,”html.parser”) Python的内置标准库,执行速度适中、文档容错能力强 Python2.7.3 or 3.2.2前的版本文档容错能力差
lxml HTML解析器 BeautifulSoup(markup,”lxml”) 速度快、文档容错能力强 需要安装C语言库
lxml XML解析器 BeautifulSoup(markup,[”xml”,”xml”]),BeautifulSoup(markup,”xml”) 速度快、唯一支持XML的解析器 需要安装C语言库
html5lib BeautifulSoup(markup,”html5lib”) 最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 速度慢、不依赖外部扩展

推荐使用lxml作为解析器,因为效率更高。在Python2.7.3之前的版本和Python3中的3.2.2之前的版本,必须安装lxml或者html5lib,因为那些版本Python版本的标准库中内置的HTML解析方法不够稳定。

5、总结

本节主要讲解了三个内容:

  1. Beautiful Soup功能强大、支持多种解析器
  2. 使用pip工具安装Beautiful Soup解析库
  3. 推荐使用lxml作为Beautiful Soup解析器,因为它的 解析效率高,并且文档容错能力也不错,适合大多情况下使用。

在实际操作中,又遇到了没有显示我按照的问题,

已解决:bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested: lxml.

Python爬虫之Beautiful soup模块1_第3张图片
直接手动加入下载即可,非常简单

你可能感兴趣的:(爬虫,Python,python,爬虫,开发语言)