案例
1.通过pyquery定位如下html源码中的第二对儿ul中的li文本(使用CSS选择器实现,不要用下标索引)。
源代码:
from pyquery import PyQuery as pq
html = """
<div class="div">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
<ul>
<li>9</li>
<li>10</li>
</ul>
</div>
"""
doc = pq(html)
a = (doc('ul:last-child'))
print(a.text())
b = (doc('.div ul+ul'))
print(b.text())
运行结果:
D:\PyCharmProject\venv\Scripts\python.exe D:/PyCharmProject/Test10/1.py
9
10
9
10
Process finished with exit code 0
2.对例中所有的li节点,奇数节点添加class值:active-0,偶数节点添加class值:active-1。
源代码:
from pyquery import PyQuery as pq
html = """
<div class="div">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
<ul>
<li>9</li>
<li>10</li>
</ul>
</div>
"""
doc = pq(html)
li = doc('li')
oddLi = li('li:nth-child(odd)') #奇数
evenLi = li('li:nth-child(even)') #偶数
oddLi = oddLi.add_class('active-0')
evenLi = evenLi.add_class('active-1')
print(li)
运行结果:
D:\PyCharmProject\venv\Scripts\python.exe D:/PyCharmProject/Test10/2.py
<li class="active-0">1</li>
<li class="active-1">2</li>
<li class="active-0">3</li>
<li class="active-1">4</li>
<li class="active-0">5</li>
<li class="active-1">6</li>
<li class="active-0">7</li>
<li class="active-1">8</li>
<li class="active-0">9</li>
<li class="active-1">10</li>
Process finished with exit code 0