Beautiful Soup 简明教程
Beautiful Soup - Installation
Beautiful Soup 是一个让从网页中抓取信息变得容易的库。它位于 HTML 或 XML 解析器之上,为解析树的迭代、搜索和修改提供了 Pythonic 惯用语。
BeautifulSoup 软件包不是 Python 标准库的一部分,因此必须安装它。在安装最新版本之前,让我们按照 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
(myenv) C:\Users\users\user\myenv>
在 Ubuntu Linux 中,使用以下命令激活虚拟环境
mvl@GNVBGL3:~$ cd myenv
mvl@GNVBGL3:~/myenv$ source bin/activate
(myenv) mvl@GNVBGL3:~/myenv$
虚拟环境的名称显示在括号中。现在它已激活,我们现在可以在其中安装 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 源归档并使用 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
Installing a Parser
默认情况下,Beautiful Soup 支持 Python 标准库中包含的 HTML 解析器,但它还支持许多外部第三方 Python 解析器,如 lxml 解析器或 html5lib 解析器。
要安装 lxml 或 html5lib 解析器,请使用命令:
pip3 install lxml
pip3 install html5lib
这些解析器具有各自的优点和缺点,如下所示 -
Parser: Python’s html.parser
Usage - BeautifulSoup(markup, "html.parser")
Advantages
-
Batteries included
-
Decent speed
-
易于处理(自 Python 3.2 起)
Disadvantages
-
没有 lxml 快,不如 html5lib 宽松。
Parser: lxml’s HTML parser
Usage − BeautifulSoup(markup, "lxml")
Advantages
-
Very fast
-
Lenient
Disadvantages
.