Python lxml 模块2025年3月17日 | 阅读 10 分钟 我们都一定听过网络爬虫以及如何使用网络爬虫从网站上抓取信息。网络爬虫非常重要,因为它能帮助我们从一个网页或网站获取所有有用的信息,并且我们可以从中获得任何我们想要的信息。现在,我们中的许多人可能会想,为什么我们首先要从网页获取信息,而不是直接访问网页来查看信息?使用网络爬虫过程主要有两个目的,如下:
这是网络爬虫之所以重要以及我们为什么必须使用网络爬虫的两个重要原因。现在,当我们理解了网络爬虫在节省时间和获取所有有用信息方面的重要性时,我们都想学习如何使用网络爬虫。有多种方法可以实现和使用网络爬虫过程,并且在 Python 中也有多种实现网络爬虫过程的方法。 Python 提供了多种模块,使用这些模块;我们可以通过 Python 程序实现网络爬虫。其中一个 Python 模块就是 lxml 模块,它提供了多种函数库,通过这些库可以实现网络爬虫。在本教程中,我们将学习 Python lxml 模块,并了解如何使用此模块实现网络爬虫。 注意:我们应该注意到,在对任何网页或 Web 链接执行网络爬虫时,我们必须事先获得某些网站的许可;否则,将被视为非法。我们在实现网络爬虫时还应注意的一点是,向单个网站发送多个网络爬虫请求可能会导致该网站封禁。Python 中的 lxml 模块Python 的 lxml 模块是一个 XML 工具包,它基本上是以下两个 C 库的 Pythonic 绑定:libxlst 和 libxml2。lxml 模块是 Python 中一个非常独特和特殊的模块,因为它提供了 XML 功能和速度的结合。在 lxml 模块中,我们提供了多种函数,通过在 Python 程序中使用这些函数;我们可以轻松地执行网络爬虫并从任何网页中整理所有有用的信息。Python 的 lxml 模块还允许我们在网络爬虫过程中轻松处理所有 HTML 和 XML 文件。 以下是使用 Python 程序中的 lxml 模块可以执行的函数:
在本教程中,我们只将学习 lxml 模块在网络爬虫中的实现以及如何使用该模块的函数来执行网络爬虫。 Python 中的 lxml 模块:安装Python 的 lxml 模块不是内置的 Python 库,因此,如果我们想使用此模块通过 Python 程序实现网络爬虫,那么首先我们应该确保我们的系统上已安装 lxml 模块。如果我们的系统上未安装 lxml 模块,那么我们首先需要安装此模块,然后才能继续实现该模块的网络爬虫。 我们有多种安装方法可用于安装 lxml 模块,我们可以根据自己的选择使用其中任何一种方法,但在本节中,我们将仅使用 pip 安装程序方法来安装 lxml 模块。在 pip 安装方法中,首先,我们需要打开设备的 cmd 命令提示符终端,然后我们在终端中输入以下 pip 命令: 在终端中输入上述命令后,我们需要按 Enter 键启动安装过程。一旦我们按下 Enter 键,lxml 模块的安装过程就会开始,并且需要一段时间才能成功安装此模块。 ![]() 正如我们所见,lxml 模块已成功安装在系统中,现在我们可以将其导入到我们的 Python 程序中,并借助其函数来实现网络爬虫过程。 注意:在我们继续使用 lxml 模块进行网络爬虫实现部分之前,我们应该注意到,在执行网络爬虫时,我们还需要另一个 Python 模块。如果我们想使用 lxml 模块进行网络爬虫,那么我们的系统中除了 lxml 模块外,还需要安装 Python requests 模块。这是因为 Python 的 requests 模块将向我们要执行网络爬虫的网站或网页发送请求。Python 的 requests 模块也不是内置模块,因此,我们应该确保我们的系统中也存在此模块。如果我们的系统中未安装 requests 模块,那么同样,我们可以使用 pip 安装程序来安装此模块。我们需要在 cmd 终端中输入以下命令:输入命令后,我们需要按照过程操作,等待一段时间,直到 requests 模块的安装过程完成。 ![]() 我们可以看到 Python Requests 模块已成功安装在我们的系统中,现在我们可以继续使用 lxml 模块实现网络爬虫部分。 Python 中的 lxml 模块:网络爬虫实现在我们继续本节的实现部分之前,我们需要了解一些事情,之后我们才能继续进行网络爬虫的实现。 实现 lxml 模块网络爬虫的步骤 我们必须遵循分步过程来实现和使用网络爬虫,并使用此过程从网页中检索信息。以下是我们在使用 lxml 模块实现网络爬虫时必须遵循的步骤:
这些是我们必须按顺序遵循的步骤,以从网页中检索特定内容。我们可以通过遵循上述步骤来实现网络爬虫并从任何 Web 链接中检索内容。 Web 链接的 xpath在实现网络爬虫的步骤 4 和 5 中,我们可以找到 'xpath' 这个词,它对于成功实现网络爬虫非常重要。现在,我们中的许多人会问 'xpath' 是什么,以及如何获得 Web 链接的 xpath。我们将在本节中回答这两个问题。 xpath:xpath 使用非 XML 语法提供了一种灵活的寻址方式,代表 XML 路径语言,通过 xpath,我们可以指向给定 XML 文档(或网页)的不同部分。xpath 用于网络爬虫,以便程序可以寻址或唯一标识要检索的网页部分。xpath 是网络爬虫中的一个重要元素,因为 xpath 是程序中指定要从 Web 链接中检索内容的唯一元素。 现在,第二个问题是如何为给定的链接获取 xpath,这个问题的答案是,我们必须遵循以下步骤来获取 Web 链接的 xpath: 步骤 1:首先,我们必须访问我们想要在其上执行网络爬虫的 URL,然后右键单击,会弹出一个包含选项列表的窗口。右键单击 URL 页面后打开的窗口将如下所示: ![]() 步骤 2:我们必须从选项列表中选择“检查”选项,它会在同一 URL 页面上打开第二个窗口,我们可以在其中找到 URL 的代码及其所有元素。 步骤 3:现在,我们必须在此步骤中再次右键单击,但现在我们必须右键单击打开的元素窗口。当我们右键单击 div 元素时,将打开另一个包含选项列表的弹出窗口。右键单击检查页面窗口元素后打开的窗口将如下所示: ![]() 步骤 4:在此步骤中,我们必须转到复制选项,在那里我们会看到很多复制选项。当我们从选项列表中转到复制选项时,会出现以下选项列表: ![]() 我们必须选择“完整 xpath”选项,这样完整的 xpath 就会被复制,并且我们在网络爬虫过程中必须在我们的程序中使用此 xpath。 在获取我们在网络爬虫中使用的 URL 的 xpath 时,我们应该遵循这些步骤,并且我们应该注意到 xpath 是网络爬虫过程中的一个重要元素。 网络爬虫实现当我们在 Python 程序中使用 lxml 模块来实现网络爬虫时,我们必须在执行程序之前固定许多事情,如下所示:
在程序中确定并固定这些事情之后,我们可以执行程序并通过 lxml 模块实现网络爬虫。 在本节中,我们将使用自定义 URL,然后通过获取其 xpath 来在自定义 URL(即新发布)上执行网络爬虫。我们将从本教程中使用的自定义 URL 中获取以下两个重要元素:
我们将在每种情况下使用 Python 程序,并通过这些程序,我们将了解 lxml 模块的网络爬虫实现过程。 实现 1:使用 lxml 模块的网络爬虫获取价格列表 此实现方法将使用 lxml 和 requests 模块的函数在输出中从自定义 URL 获取价格列表。在此实现中,我们将使用以下示例程序从“新发布”中获取价格列表。 示例 1 输出 The price list from the URL of new releases: ![]() 正如我们所见,“新发布”URL 的价格列表已成功打印在输出中,我们甚至可以将此列表保存以备将来使用。 说明 为了使用其函数来实现网络爬虫,我们在程序中导入了 lxml 模块中的 html 库和 requests 模块。之后,我们初始化了一个 URL 变量,并将新发布 URL(我们将对其执行网络爬虫)放在该变量中。 然后,我们使用 requests 模块的 get() 函数和 URL 变量通过发送请求来从 URL 获取数据。我们在 getHtml 变量内部使用了 get() 方法,然后在此变量上使用 fromstring() 方法在程序中获取 URL 的内容。 我们在初始化的变量 docContent() 中使用了 fromstring(),并进一步将此变量与 xpath 变量一起使用。我们使用 lxml 模块的 xpath() 函数在 'xpathComplete' 变量中定义了 URL 的完整 xpath。之后,我们再次通过 xpath() 函数在 'xpathPrices' 变量中定义了价格的 xpath。 最后,我们使用 print 语句中的 'xpathPrices' 变量在输出中打印价格列表,并且程序将通过网络爬虫从网页中检索价格列表。 实现 2:使用 lxml 模块从 URL 获取标题列表 在此实现方法中,我们将通过使用 lxml 和 requests 模块实现的网络爬虫,在输出中从自定义 URL 获取价格列表。在此实现部分,我们将使用以下示例程序来获取“新发布”中的标题列表。 示例 2 输出 The title list from the URL of new releases: ![]() 正如我们所见,“新发布”URL 的标题列表已成功打印在输出中,我们甚至可以将此列表保存以备将来使用。 下一主题Python MayaVi 模块 |
在本教程中,我们将学习如何改进 Python 中的面向对象设计。当我们编写类并设计 Python 中的交互时,我们会遵循一组指令,有助于构建更好的面向对象代码。面向对象设计是流行且广泛...
阅读 13 分钟
创建智能预测模型最流行的方法是协同过滤,随着收集到更多关于用户的数据,该模型在提出建议方面会变得更好。协同过滤被大多数网站(如 Netflix、Amazon、YouTube)用作其高级推荐系统的一部分...
14 分钟阅读
一种流行且有效的排序算法 Quick Sort 使用分治法来组织列表或数组中的项。虽然 Quick Sort 通常实现为基于文本的算法,但您可以使用 Python 的 Matplotlib 以三维方式可视化该方法,以便更好地...
阅读 6 分钟
?本教程解释了如何在不使用方括号的情况下打印 Python 列表。我们假设你了解列表的基础知识。有几种打印列表的方法可以移除方括号,下面将详细介绍。3 种打印列表的 Python 技巧...
阅读 3 分钟
在本教程中,我们将学习使用普通哈希函数进行排序。我们熟悉各种排序算法,如堆排序、冒泡排序、合并排序等。这里我们将使用哈希数组对给定元素数组进行排序。然而,...
7 分钟阅读
本教程将教我们如何使用 Python 脚本压缩给定的图像。图像压缩是一个在不降低图像质量的情况下减小图像大小的过程。互联网上有很多工具,我们需要上传并压缩...
阅读 10 分钟
基础/必备知识简介:字典是 Python 中可用的数据类型之一。如果您熟悉集合和列表,那么字典就是另一种数据存储方式。从正式定义来看,字典是存储在...中的无序数据集合。
阅读 3 分钟
?在本教程中,我们将学习鸭子类型。这是 Python 中的一个流行术语,它源于“如果它走起来像鸭子,游起来像鸭子,看起来像鸭子,那么它可能就是一只鸭子”这句话。以上声明给出了一个想法...
阅读 3 分钟
在本教程中,我们将学习深度优先搜索算法并使用 Python 编程语言实现。我们将讨论其基本原理和简单性。该算法用于解决图形相关问题,这将对许多竞争性考试有所帮助。DFS...
阅读 6 分钟
本教程将教我们如何将元组连接成嵌套元组。有时,我们需要将单个记录转换为嵌套集合,但它们仍作为单独的元素存在。换句话说,我们将添加元组并展平结果容器;它通常是...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India