Python BeautifulSoup - find_all Class2025年1月5日 | 阅读 7 分钟 在使用 Beautiful Soup (BS) 在 Python 中按类查找元素时,您可以使用各种方法。让我们来研究一下。 ![]() 什么是 BeautifulSoup 或 bs4?一个名为 Beautiful Soup 的 Python 库专门用于解析 XML 和 HTML 文档。它简化了从网页中提取信息的过程,使其成为数据挖掘、内容提取和网络抓取的有用工具。以下是有关 Beautiful Soup 的一些重要详细信息: 目的通过构建 Python 对象的解析树,Beautiful Soup 允许导航和搜索 HTML 和 XML 文档。然后,您可以从该树结构中提取相关数据。 用途它经常用于网络抓取,访问网页的 HTML 内容以提取有价值的数据。
特点
如何安装 BeautifulSoup?要安装 BeautifulSoup,请使用以下命令: 如何安装 requests?使用 Requests 可以非常轻松地发送 HTTP/1.1 请求。此外,Python 默认不包含此模块。在终端中输入以下命令进行安装: 使用 class_ 和 find_all()在使用 find_all() 方法时,可以将所需的类名指定为 class_ 参数。以下是 Beautiful Soup 4.1.2 及更高版本的推荐方法: 示例 输出 javaTpoint 代码解释 上面的代码使用 BeautifulSoup 库解析存储在 html_content 变量中的 HTML 数据。html_content 代表一种特定的 HTML 结构,包括一个包含“javaTpoint”短语的段落,其 p 标签的 class 属性设置为“text”。使用 BeautifulSoup 库从 HTML 内容生成解析树,然后通过 find_all() 函数的“.text”部分。查找所有具有“class”属性的元素,然后 find_all() 函数循环遍历指定的元素并显示输出,在此实例中显示“javaTpoint”。 使用 CSS 选择器另一种方法是使用 CSS(层叠样式表)选择器。CSS 选择器可用于查找具有特定类的元素。例如: 代码 输出 javaTpoint 代码解释 在上面提供的代码中,我们使用了 select() 方法通过 CSS 选择器检索所有类名为“text”的元素。它首先使用 BeautifulSoup 库解析 HTML 内容,然后应用 CSS 选择器 .text 来查找所有类名为“text”的元素。最后,它会遍历选定的元素并打印文本“javaTpoint”。 使用类列表您可以向 find_all() 提供一个类名列表来搜索具有多个类的元素。 代码 输出 javaTpoint 说明 在上面提到的示例中,它将通过将类列表传递给 `find_all()` 方法来搜索所有具有“text”或“other-class”的元素。最后,它将遍历选定的元素并打印结果。 从 HTML 文档中查找类首先,创建一个 HTML 文档并导入模块。之后,将内容解析到 BeautifulSoup 库中,并通过类名迭代数据。 示例 输出 <p class="body">javaTpoint provides all the tutorials online, including all the technologies like Java, Python, C, C++, etc. </p> 代码解释 在上面的代码中,存储在 html_doc 变量中的 HTML 文档包含带有特定类的 ` ` 和 `` 等元素。接下来,我们导入了 BeautifulSoup 模块,并使用它来解析 HTML 文档。随后,它使用 BeautifulSoup 的 find() 方法搜索类名为“body”的元素。此方法尝试查找具有指定类(在此情况下为“body”)的元素的第一个实例。 查找 URL 中所有类的程序导入模块,创建 requests 实例并将 URL 传入。之后,将 requests 传入 Beautifulsoup() 函数。然后,我们将迭代所有标签并获取类名。 代码 输出 {'homecol2', 'ddsmoothmenu', 'points', 'right1024', 'adPushupAds', '__cf_email__', 'hrhomebox', 'homecontent', 'column4', 'lazyload', 'footer1', 'header', 'footer2', 'onlycontent', 'gra1', 'h3', 'h2', 'firsthomecontent', 'headermobile'} 代码解释 在上面的代码中,我们使用了 BeautifulSoup 库来抓取 'https://tpointtech.cn/' 的内容。首先,它将导入必要的模块,BeautifulSoup 和 requests。然后,脚本使用 requests 模块获取网页的内容,然后进行解析。BeautifulSoup 库会检索网页中存在的所有 HTML 标签,并迭代每个标签以查找具有 class 属性的元素。在找到所有标签后,它将提取与元素关联的类,并将它们添加到名为 class_list 的集合中。最后,它将打印网页 HTML 内容中找到的唯一类名集合。 使用正则表达式的 find_all`.find_all()` 方法也支持正则表达式。要使用正则表达式查询,只需将其添加到 `.find_all()` 方法中。例如,在此实例中,我们结合使用 `.find_all()` 方法和正则表达式来查找所有以字母 b 开头的标签。 代码 输出 body b 代码解释 在上面提供的代码中,将正则表达式模块(re)与 BeautifulSoup 结合使用,以查找在变量 soup 显示的 HTML 文本中以字母“b”开头的所有 HTML 标签。该过程使用常量引用结构 `^b`,通过解析 HTML 内容中指定的每个标签。在选择任何以字母 b 开头的字符串后,程序将显示所有满足此标准的标签列表,包括 `` 和 `` 标签,每个标签单独一行。 或者,要查找包含字母 t 的所有标签,我们结合使用 `.find_all()` 方法和正则表达式。 代码 输出 html title 代码解释 在上面的程序中,我们使用了 re 模块和 BeautifulSoup 来简化在解析的 soup 内容中查找包含字母“t”的 HTML 标签的任务。通过循环,查找 HTML 内容中的所有标签,并使用字符“t”来显示包含字母“t”的字符串。结果是,代码列出了符合此标准的标签名称,例如“html”和“title”标签,每个标签显示在新的一行上。输出将列出 HTML 内容中满足指定正则表达式格式的所有 html 和 title 标签。 通过自定义函数进行 find_all如果您正在处理任何复杂的程序或查询,可以将函数传递给 find_all() 方法。以下是一个代码片段示例。 代码 输出 [] 代码解释 在上面的代码中,我们通过使用一个名为 custom_selector() 的选择器函数来更改要解析的 HTML 文本。在找到特定标签和特殊条件后,custom_selector() 函数会返回积极的结果。接下来,find_all() 方法使用此自定义选择器函数来访问 HTML 内容中满足这些条件的每个标签。 结论BeautifulSoup 是一个流行的 Python 库,用于访问 HTML 文件中的类。该库使我们能够轻松地解析 XML 和 HTML 文档,从而简化了网络抓取的过程。通过在 Python 中使用 BeautifulSoup 库,我们可以使用 find_all() 方法根据类名定位对象。此方法允许我们在 HTML 文档中搜索特定的类,并可以访问相关数据。 |
3D 装箱问题简介:3D 装箱问题是一个组合优化问题,其中一组 3D 对象应打包到一组 3D 容器或箱子中,以最大程度地减少浪费的空间。这个问题在各种行业中至关重要,包括物流、制造和资源...
阅读 12 分钟
在本教程中,我们将学习二分图以及检查给定图是否为二分图的方法。二分图是一种其顶点可以分成两个独立集合的图。设这两个集合为 S1 和 S2。这两个...
14 分钟阅读
引言 Hough 变换是一种强大的数学方法,用于计算机视觉和图像处理,以在数字图像中识别形状和模式。它最早由 Paul Hough 在 20 世纪 60 年代开发,目的是自动分析粒子碰撞室照片...
阅读 12 分钟
简介 Matplotlib 是 Python 中最受欢迎的绘图库之一,广泛用于创建静态、动画和交互式可视化。在其众多图表类型中,四矢图是可视化向量场的强大工具。本指南将深入探讨...
阅读 3 分钟
Python 是一种高级、解释型和动态类型的语言,以其简单性和可读性而闻名。它使用缩进来定义代码块,增强了清晰度。Python 支持多种编程范式,包括过程式、面向对象和函数式编程。其广泛的标准库和活跃的社区使其...
阅读 4 分钟
? 简介 Python 中的 insert() 函数允许您在列表的指定位置插入一个对象。此过程需要两个参数:对象本身和您希望放置该对象的索引。例如,您将使用...
5 分钟阅读
介绍:在本教程中,我们将学习 Python 中的 NumPy squeeze。我们希望删除特定数量变量的大小,因此我们在 NumPy 中使用一个名为“squeeze()”的函数。在这种情况下,我们使用 NumPy 的 squeeze() 函数,它接受一个数组...
5 分钟阅读
它使开发者能够以编程方式与 Smartsheet 的阶段进行交互,自动化操作、与其他工具集成,并在 Smartsheet 内部执行广泛的信息操作。对于管理项目、跟踪信息以及在 Smartsheet 内部协作工作流的团队来说,它非常有用,因为它扩展了超越以下内容的功能...
阅读 4 分钟
简介 我想知道您是否也一样,但每当我有空闲时间,我经常会浪费数小时在 YouTube 上观看各种各样的电影。诸如“成功的 7 个秘诀”、“10 个最有用的机器学习工具”,甚至“5 个最...
阅读 4 分钟
简介 数据系统和算法是计算机科学和编程的基本构建模块。它们对于高效解决问题、软件开发和构建强大的程序至关重要。Python 以其简单性和灵活性而闻名,是新手和有经验的程序员都喜欢的语言选择。如果...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India