PyQuery: Python的jQuery

Posted Python程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQuery: Python的jQuery相关的知识,希望对你有一定的参考价值。

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

在本教程中,您将看到PyQuery:一个允许您对XML文档进行jQuery查询的Python库。在语法上它与jQuery非常相似,如果你熟悉jQuery,理解起来应该更容易。

PyQuery入门

开始使用PyQuery前需要先用PIP安装Python包。

PyQuery: Python的jQuery

PyQuery安装完成后,将其导入到Python程序中。

PyQuery: Python的jQuery

让我们从一个基本的例子开始吧。考虑以下html: 

PyQuery: Python的jQuery

输入XML并将其传递给PyQuery对象,您就应该可以对jQuery样式进行查询。

PyQuery: Python的jQuery

假定divMain为jQuery对象并打印出div的HTML内容。

PyQuery: Python的jQuery

保存更改并尝试运行程序。您应该具有以下输出:

PyQuery: Python的jQuery

要从span内部获取Hello World文本,代码将是:

PyQuery: Python的jQuery

保存更改并尝试运行代码。您应该具有以下输出:

PyQuery: Python的jQuery

使用PyQuery的属性进行操作

现在来看看如何使用PyQuery库读取属性。假设你有一个HTML元素,如图所示:

PyQuery: Python的jQuery

使用PyQuery库读取上述HTML内容。

PyQuery: Python的jQuery

我们尝试访问ulMain中ul的ID属性。

PyQuery: Python的jQuery

保存上述更改并尝试运行Python程序。您应该可以看到ulMain在终端上打印ID 。

您已经看到了如何访问ulMain中ul的ID属性。我们尝试为同一个ulMain元素设置一个类名。要指定类名称属性,您需要指定属性名称及其对应的值,如下所示:

PyQuery: Python的jQuery

打印ulMain对象,你应该具有class属性的元素。

PyQuery: Python的jQuery

您也可以直接添加和删除类,而不使用attr方法。要向元素添加类,可以使用方法addClass。 

PyQuery: Python的jQuery

要从元素中删除现有的类,可以使用该removeClass方法。

PyQuery: Python的jQuery

使用PyQuery处理CSS

除了属性,元素将具有一些CSS属性。要添加或修改CSS属性,可以使用css方法指定属性。我们假设你想要以新的样式指定ulMain中ul的高度。以下代码将添加所需的样式属性到元素。

PyQuery: Python的jQuery

保存上述更改并尝试执行Python程序。你应该将ulMain与新的风格一起输出。

PyQuery: Python的jQuery

要向元素添加多个样式,可以按照下面的方法指定它们:

PyQuery: Python的jQuery

运行程序,你应该已经将样式添加到了ulMain。

PyQuery: Python的jQuery

创建和追加元素

在创建动态元素期间,您需要创建新元素并将其添加到现有的父元素中,还要让它们呈现出来。我们来看看如何使用PyQuery创建和追加元素。 

假设你有一个主容器div,名为divMain。

PyQuery: Python的jQuery

我们使用PyQuery来创建一个新的span元素。

PyQuery: Python的jQuery

添加一些CSS属性到span。

PyQuery: Python的jQuery

PyQuery提供了一种向现有元素添加元素的方法。您可以使用该append方法将span元素附加到名为divMain的div。这是代码:

PyQuery: Python的jQuery

保存更改并运行程序。您应该可以看到divMain打印的新创建的span已经追加成功。

PyQuery: Python的jQuery

您使用追加的方法将span附加到div。还有另外一种通过追加节点值的叫做appendTo的方法。在上述情况下,您可以使用如下所示的方法:

PyQuery: Python的jQuery

使用PyQuery查找元素

PyQuery 提供查找子元素、下一个元素和附近元素等的方法。它还提供了过滤和查找特定节点内的元素的方法。

假设你有一个特定的HTML,如下所示:

PyQuery: Python的jQuery

将以下HTML添加到PyQuery对象中:

PyQuery: Python的jQuery

让我们使用PyQuery来找到div的子元素divMain。添加以下代码行来打印divMain的子元素。

PyQuery: Python的jQuery

运行该程序时,应该具有以下输出:

PyQuery: Python的jQuery

要找到与元素最近的元素,可以使用closest方法。要找到距离最近的div元素,代码将是:

PyQuery: Python的jQuery

上述命令将返回以下输出:

PyQuery: Python的jQuery

我们还可以使用find的另一种方法来查找元素。例如,要在divMain中找到一个span,您只需要调用如下所示的方法:

PyQuery: Python的jQuery

上述命令将返回span。

PyQuery: Python的jQuery

在HTML中插入元素

虽然使用append可以实现在现有元素中添加新元素,但有时您需要在元素之前或之后插入元素。PyQuery提供了在其他元素之前或之后插入元素的方法。

我们定义一个新的段落元素,并插入到名为divMain的div中的span中。

PyQuery: Python的jQuery

在p元素上调用insertAfter方法,将其插入到span之后。

PyQuery: Python的jQuery

保存上述更改并运行Python程序。您应该具有以下输出:

PyQuery: Python的jQuery

类似地,您有insertBefore方法,它插入到元素之前。使用insertBefore方法修改代码,如下图所示: 

保存更改并运行程序。您应该能够在终端上看到以下输出:

结语

在本教程中,您了解到了如何使用PyQuery库,该库可让您对XML文档进行jQuery查询。您看到了如何操纵HTML元素的属性和CSS样式。

您学习了如何创建和追加元素到现有元素,以及在元素之前和之后插入新元素。您在本教程中看到的只是冰山一角,这个库中还提供了很多。

有关使用此库的更多详细信息,我建议您阅读官方文档。请在下面的评论中通知我们您的建议。


英文原文:https://code.tutsplus.com/tutorials/pyquery-pythons-jquery--cms-28178
译者:Sarah


以上是关于PyQuery: Python的jQuery的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫之PyQuery的基本使用

Python 中 PyQuery 库

python之爬虫PyQuery库的使用

数据之路 - Python爬虫 - PyQuery库

python系列之PyQuery的用法

python3 爬虫神器pyquery的使用实例