BeautifulSoup 教程是 BeautifulSoup Python 库的入门教程。 这些示例查找标签,遍历文档树,修改文档和刮取网页。
BeautifulSoup
BeautifulSoup 是用于解析 HTML 和 XML 文档的 Python 库。 它通常用于网页抓取。 BeautifulSoup 将复杂的 HTML 文档转换为复杂的 Python 对象树,例如标记,可导航字符串或注释。
安装 BeautifulSoup
我们使用pip3
命令安装必要的模块。
我们需要安装 BeautifulSoup 使用的lxml
模块。
上面的命令将安装 BeautifulSoup。
HTML 文件
在示例中,我们将使用以下 HTML 文件:
index.html
BeautifulSoup 简单示例
在第一个示例中,我们使用 BeautifulSoup 模块获取三个标签。
simple.py
该代码示例将打印三个标签的 HTML 代码。
我们从bs4
模块导入BeautifulSoup
类。 BeautifulSoup
是从事工作的主要班级。
我们打开index.html
文件并使用read()
方法读取其内容。
创建了BeautifulSoup
对象; HTML 数据将传递给构造函数。 第二个选项指定解析器。
在这里,我们打印两个标签的 HTML 代码:h2
和head
。
有多个li
元素; 该行打印第一个。
这是输出。
BeautifulSoup 标签,名称,文本
标记的name
属性给出其名称,text
属性给出其文本内容。
tags_names.py
该代码示例打印h2
标签的 HTML 代码,名称和文本。
这是输出。
BeautifulSoup 遍历标签
使用recursiveChildGenerator()
方法,我们遍历 HTML 文档。
traverse_tree.py
该示例遍历文档树并打印所有 HTML 标记的名称。
在 HTML 文档中,我们有这些标签。
BeautifulSoup 子元素
使用children
属性,我们可以获取标签的子级。
get_children.py
该示例检索html
标记的子代,将它们放置在 Python 列表中,然后将其打印到控制台。 由于children
属性还返回标签之间的空格,因此我们添加了一个条件,使其仅包含标签名称。
html
标签有两个子元素:head
和body
。
BeautifulSoup 后继元素
使用descendants
属性,我们可以获得标签的所有后代(所有级别的子级)。
get_descendants.py
该示例检索body
标记的所有后代。
这些都是body
标签的后代。
BeautifulSoup 网页抓取
请求是一个简单的 Python HTTP 库。 它提供了通过 HTTP 访问 Web 资源的方法。
scraping.py
该示例检索一个简单网页的标题。 它还打印其父级。
我们获取页面的 HTML 数据。
我们检索标题的 HTML 代码,其文本以及其父级的 HTML 代码。
这是输出。
BeautifulSoup 美化代码
使用prettify()
方法,我们可以使 HTML 代码看起来更好。
prettify.py
我们美化了一个简单网页的 HTML 代码。
这是输出。
BeautifulSoup 通过 ID 查找元素
使用find()
方法,我们可以通过各种方式(包括元素 ID)查找元素。
find_by_id.py
该代码示例查找具有mylist
ID 的ul
标签。 带注释的行是执行相同任务的另一种方法。
BeautifulSoup 查找所有标签
使用find_all()
方法,我们可以找到满足某些条件的所有元素。
find_all.py
该代码示例查找并打印所有li
标签。
这是输出。
find_all()
方法可以获取要搜索的元素列表。
find_all2.py
该示例查找所有h2
和p
元素并打印其文本。
find_all()
方法还可以使用一个函数,该函数确定应返回哪些元素。
find_by_fun.py
该示例打印空元素。
文档中唯一的空元素是meta
。
也可以使用正则表达式查找元素。
regex.py
该示例打印包含“ BSD”字符串的元素的内容。
这是输出。
BeautifulSoup CSS 选择器
通过select()
和select_one()
方法,我们可以使用一些 CSS 选择器来查找元素。
select_nth_tag.py
本示例使用 CSS 选择器来打印第三个li
元素的 HTML 代码。
这是第三个li
元素。
CSS 中使用# 字符通过 ID 属性选择标签。
select_by_id.py
该示例打印具有mylist
ID 的元素。
BeautifulSoup 追加元素
append()
方法将新标签附加到 HTML 文档。
append_tag.py
该示例附加了一个新的li
标签。
首先,我们使用new_tag()
方法创建一个新标签。
我们获得对ul
标签的引用。
我们将新创建的标签附加到ul
标签。
我们以整齐的格式打印ul
标签。
BeautifulSoup 插入元素
insert()
方法在指定位置插入标签。
insert_tag.py
该示例将第三个位置的li
标签插入ul
标签。
BeautifulSoup 替换文字
replace_with()
替换元素的文本。
replace_text.py
该示例使用find()
方法查找特定元素,并使用replace_with()
方法替换其内容。
BeautifulSoup 删除元素
decompose()
方法从树中删除标签并销毁它。
decompose_tag.py
该示例删除了第二个p
元素。
在本教程中,我们使用了 Python BeautifulSoup 库。
您可能也会对以下相关教程感兴趣:Python 教程,Openpyxl 教程,Pyquery 教程,Python 列表推导,Python CSV 教程。