开始使用 beautifulsoup
在本节中,我们将讨论 Beautiful Soup 是什么,它的用途以及如何使用它的简要概述。
Beautiful Soup 是一个 Python 库,它使用你预先安装的 html / xml 解析器,并将网页/ html / xml 转换为由标签,元素,属性和值组成的树。更确切地说,树由四种类型的对象组成,Tag,NavigableString,BeautifulSoup 和 Comment。然后可以使用从解析器库创建的 BeautifulSoup 对象的方法/属性查询此树。
你的需求: 通常,你可能会满足以下需求之一:
-
你可能需要解析网页以确定,找到了多少标签,找到每个标签的元素数量及其值。你可能想要更改它们。
-
你可能希望确定元素名称和值,以便可以将它们与其他库一起用于网页自动化,例如 Selenium 。
-
你可能希望将网页中显示的数据传输/提取为其他格式,例如 CSV 文件或关系数据库(如 SQLite 或 mysql)。在这种情况下,尽管你将使用其他库来执行传输操作,但库可帮助你了解网页结构的第一步。
-
你可能想知道使用某种 CSS 样式设置了多少个元素以及哪些元素。
**** Python 代码中典型基本用法的顺序 :
-
导入 Beautiful Soup 库
-
使用 BeautifulSoup 库打开网页或 html 文本,提及要使用的解析器。此步骤的结果是 BeautifulSoup 对象。 (注意:提到的这个解析器名称必须已经作为 Python pacakges 的一部分安装。例如,
html.parser
是 Python 附带的内置带电池软件包。你可以安装其他解析器,如lxml
或html5lib
。) -
查询或使用语法
'object.method'
搜索 BeautifulSoup 对象,并将结果获取到集合中,例如 Python 字典。对于某些方法,输出将是一个简单的值。 -
使用上一步中的结果,在其余的 Python 代码中执行你想要执行的操作。你还可以修改树对象中的元素值或属性值。修改不会影响 html 代码的来源,但你可以调用输出格式化方法(例如
prettify
)以从 BeautifulSoup 对象创建新输出。
常用方法: 通常,.find
和 .find_all
方法用于搜索树,给出输入参数。
输入参数是:正在搜索的标记名称,属性名称和其他相关参数。这些参数可以表示为:字符串,正则表达式,列表甚至函数。
**** BeautifulSoup 对象的常见用途包括:
- 按 CSS 类搜索
- 按超链接地址搜索
- 按元素 ID 搜索,标记
- 按属性名称搜索。属性值。
如果你需要使用上述条件的组合过滤树,你还可以编写一个计算结果为 true 或 false 的函数,并按该函数进行搜索。