Beautiful Soup是一个库,它使从网页中抓取信息变得简单。它位于HTML或XML解析器之上,提供了迭代、搜索和修改解析树的Python风格的习惯用法。
BeautifulSoup包并不是Python标准库的一部分,因此必须安装。在安装最新版本之前,我们建议创建一个虚拟环境。
虚拟环境
虚拟环境允许我们为特定项目创建一个隔离的工作副本的Python环境而不影响外部设置。
我们将使用Python标准库中的venv
模块来创建虚拟环境。PIP默认包含在Python 3.4或更高版本中。
在Windows上创建虚拟环境
使用以下命令来创建虚拟环境:
C:\uses\user\>python -m venv myenv
在Ubuntu Linux上创建虚拟环境
首先更新APT仓库并安装venv
(如果尚未安装的话),然后创建虚拟环境:
mvl@GNVBGL3:~ $ sudo apt update && sudo apt upgrade -y
mvl@GNVBGL3:~ $ sudo apt install python3-venv
然后使用以下命令来创建虚拟环境:
mvl@GNVBGL3:~ $ sudo python3 -m venv myenv
你需要激活这个虚拟环境。在Windows上使用以下命令:
C:\uses\user\>cd myenv
C:\uses\user\myenv>scripts\activate
在Ubuntu Linux上使用以下命令来激活虚拟环境:
mvl@GNVBGL3:~$ cd myenv
mvl@GNVBGL3:~/myenv$ source bin/activate
当虚拟环境被激活后,环境的名称会出现在括号内。现在我们可以安装BeautifulSoup了。
(myenv) mvl@GNVBGL3:~/myenv$ pip3 install beautifulsoup4
安装过程如下:
Collecting beautifulsoup4
Downloading beautifulsoup4-4.12.2-py3-none-any.whl (142 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
143.0/143.0 KB 325.2 kB/s eta 0:00:00
Collecting soupsieve>1.2
Downloading soupsieve-2.4.1-py3-none-any.whl (36 kB)
Installing collected packages: soupsieve, beautifulsoup4
Successfully installed beautifulsoup4-4.12.2 soupsieve-2.4.1
请注意,最新的BeautifulSoup4版本是4.12.2,并且需要Python 3.8或更高版本。
如果你没有安装easy_install
或pip
,你可以下载Beautiful Soup 4的源码tarball并通过setup.py
安装。
(myenv) mvl@GNVBGL3:~/myenv$ python setup.py install
为了检查BeautifulSoup是否正确安装,请在Python终端中输入以下命令:
>>> import bs4
>>> bs4.__version__
'4.12.2'
如果安装未成功,你会收到ModuleNotFoundError
错误。
你也需要安装requests库,这是一个Python的HTTP库。
pip3 install requests
安装解析器
默认情况下,Beautiful Soup支持Python标准库中包含的HTML解析器,但它也支持许多外部第三方Python解析器,如lxml解析器或html5lib解析器。
要安装lxml或html5lib解析器,请使用以下命令:
pip3 install lxml
pip3 install html5lib
这些解析器各有优缺点,如下所示:
解析器: Python的html.parser
使用
BeautifulSoup(markup, "html.parser")
优点
缺点
解析器: lxml的HTML解析器
使用
BeautifulSoup(markup, "lxml")
优点
缺点
解析器: lxml的XML解析器
使用
BeautifulSoup(markup, "lxml-xml")
或者
BeautifulSoup(markup, "xml")
优点
缺点
解析器: html5lib
使用
BeautifulSoup(markup, "html5lib")
优点
缺点