当前位置: 首页 > 工具软件 > pyquery-ql > 使用案例 >

PyQuery:Python的jQuery

别旻
2023-12-01

在本教程中,您将了解PyQuery ,这是一个Python库,可用于对XML文档进行jQuery查询。 从语法上讲,它与jQuery非常相似,并且如果您熟悉jQuery,则应该更容易理解。

PyQuery入门

要开始使用PyQuery ,请使用PIP安装Python软件包。

pip install pyquery

一旦安装了PyQuery ,将其导入到Python程序中。

from pyquery import PyQuery as pq

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

<div id="divMain">
  <span>
    Hello World
  </span>
</div>

将输入的XML传递给PyQuery对象,您应该能够对其应用jQuery样式查询。

divMain = pq("<div id='divMain'><span>Hello World</span></div>")

假定divMain为jQuery对象,并打印divHTML内容。

print divMain('#divMain').html()

保存所做的更改,然后尝试运行该程序。 您应该具有以下输出:

<span>Hello World</span>

要从跨度内部访问Hello World文本,代码为:

print divMain('#divMain').text()

保存所做的更改,然后尝试运行代码。 您应该具有以下输出:

Hello World

使用PyQuery进行属性操纵

现在让我们看一下如何使用PyQuery库读取属性。 假设您有一个HTML元素,如下所示:

<ul id="ulMain">
    <li>Roy</li>
    <li>Hari</li>
</ul>

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

ulMain = pq("<ul id='ulMain'><li>Roy</li><li>Hari</li></ul>")

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

print ulMain.attr('id')

保存以上更改,然后尝试运行Python程序。 您应该在终端上印有ID ulMain

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

ulMain.attr('class','testclass')

打印ulMain对象,您应该拥有带有class属性的元素。

<ul id="ulMain" class="testclass">
    <li>Roy</li>
    <li>Hari</li>
</ul>

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

ulMain.addClass('test')

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

ulMain.removeClass('test')

使用PyQuery处理CSS

除了属性之外,该元素还将具有一些CSS属性。 要添加或修改CSS属性,可以使用css方法并指定属性。 假设您要以ul ulMain的样式指定高度。 以下代码将所需的样式属性添加到元素。

ulMain.css('height','100px')

保存以上更改,然后尝试执行Python程序。 您应该将ul ulMain和新样式一起打印。

<ul id="ulMain" style="height: 100px">
    <li>Roy</li>
    <li>Hari</li>
</ul>

要将多种样式添加到元素,可以如下所示指定它们:

ulMain.css({'height':'100px','width':'100px'})

运行该程序,您应该将样式添加到ulMain

<ul id="ulMain" style="width: 100px; height: 100px">
    <li>Roy</li>
    <li>Hari</li>
</ul>

创建和追加元素

在动态元素创建过程中,需要创建新元素并将它们附加到将要呈现它们的现有父元素上。 让我们看一下如何使用PyQuery创建和附加元素。

假设您有一个名为divMain的主容器div。

divMain = pq("<div id='divMain'></div>")

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

span = pq('<span>Hello World</span>')

将一些CSS属性添加到范围中。

span.css({'color':'blue','font-weight':'bold'})

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

divMain.append(span)
print divMain

保存更改并运行程序。 您应该能够看到divMain印有新创建的跨度。

<div id="divMain">
  <span style="color: blue; font-weight: bold">
    Hello World
  </span>
</div>

您使用了append方法将范围附加到div。 您还有另一个名为appendTo替代方法,该方法会将节点附加到值。 在上述情况下,您可以使用如下方法:

span.appendTo(divMain)

使用PyQuery查找元素

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

假设您有一块特定HTML,如下所示:

<div id="divMain">
    <div id="content">
        <ul>
            <li>Jade</li>
            <li>Jim</li>
        </ul>
    </div>
    <div id="list">
        <span>Hello World</span>
    </div>
</div>

将以下HTML添加到PyQuery对象:

divMain = pq("<div id='divMain'>"+
"<div id='content'>"+
"<ul>"+
"<li>Jade</li>"+
"<li>Jim</li>"+
"</ul>"
"</div>"+
"<div id='list'>"+
"<span>Hello World</span>"
"</div>"+
"</div>")

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

print divMain.children()

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

<div id="content">
    <ul>
        <li>Jade</li>
        <li>Jim</li>
    </ul>
</div>
<div id="list"><span>Hello World</span></div>

要查找最接近元素的元素,可以使用closest方法。 要查找与跨度最接近的div元素,代码为:

print divMain('span').closest('div')

上面的命令将返回以下输出:

<div id="list"><span>Hello World</span></div>

find方法也可用于查找元素。 例如,要在divMain找到一个范围,您需要调用如下所示的方法:

print divMain.find('span')

上面的命令将返回范围。

<span>Hello World</span>

在HTML内插入元素

尽管append会为现有元素添加元素,但是有时您需要在某些元素之后或之前插入元素。 PyQuery提供了一种在其他元素之前或之后插入元素的方法。

让我们定义一个新的段落元素,该元素将在divMain div中的跨度之后插入。

p = pq('<p>Welcome</p>')

在段落p元素上调用insertAfter方法,以将其插入到跨度之后。

p.insertAfter(divMain('span'))
print divMain

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

<div id="divMain">
    <div id="content">
        <ul>
            <li>Jade</li>
            <li>Jim</li>
        </ul>
    </div>
    <div id="list">
        <span>Hello World</span>
        <p>Welcome</p>
    </div>
</div>

同样,您具有insertBefore方法,该方法将在元素之前插入。 如下所示修改代码以使用insertBefore方法:

p.insertBefore(divMain('span'))
 print divMain

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

<div id="divMain">
    <div id="content">
        <ul>
            <li>Jade</li>
            <li>Jim</li>
        </ul>
    </div>
    <div id="list">
        <p>Welcome</p>
        <span>Hello World</span>
    </div>
</div>

包起来

在本教程中,您了解了如何开始使用PyQuery这个Python库,该库允许您对XML文档进行jQuery查询。 您已经了解了如何操作HTML元素的属性和CSS样式。

您学习了如何创建元素并将其添加到现有元素,以及如何在元素之前和之后插入新元素。 您在本教程中看到的只是冰山一角,而且该库还提供了更多其他功能。

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

翻译自: https://code.tutsplus.com/tutorials/pyquery-pythons-jquery--cms-28178

 类似资料: