3.3 pyquery的使用
2.初始化
- 字符串初始化
doc=pq(html)
print(doc('li'))
- URL初始化
3.基本CSS选择器
doc=pq(html)
items=doc('.list')
print(type(items))
print(items)
lis=items.find('li')
print(lis)
等同于
doc=pq(html)
print(doc('#container .list li'))
4.查找节点
- find查找范围是所有子孙节点,如果只想查找子节点,可用children方法。
lis=item.children('.active')
筛选子节点中class为active的节点。
- 同理,parent方法不会查找父节点的父节点,即祖先节点。
parents方法筛选所有的祖先节点。筛选某个祖先节点,则向parents方法传入CSS选择器。
- siblings方法,获取兄弟节点,筛选某个兄弟节点,可从兄弟节点传入CSS选择器。
5.遍历
对多个节点遍历,调用items方法。
- 获取属性。
调用attr方法。
print(a.attr.href)
当返回结果包含多个节点时,调用attr方法只得到第一个节点的属性。若想获取a节点的所有属性,,使用items遍历。
- 获取文本
调用text方法,忽略节点内部所有的HTML,获取内部纯文本信息。
形如<>尖括号内的内容,被忽略
调用html方法返回第一个li节点内部的HTML文本。text返回所有li节点内部的纯文本,各节点内容用一个空格分隔开,返回字符串。
6.节点操作
- addClass和removeClass
doc=pq(html)
li=doc('.item-0.active')
li.attr('name','link')
li.text('changed item')
li.html('<span>changed item</span>')
调用attr方法,li节点多了属性name=link。attr方法若只传入第一个参数,即属性名,则表示获取这个属性值,若传入第二个参数,则可用于修改属性值。
调用text传入文本,将内部全部文本改为传入的字符串文本,调用html方法传入HTML,li节点内部全变为传入的HTML文本。若text和html不传参数,表示获取节点内纯文本和HTML文本。
- remove
wrap.find('p').remove()
print(wrap.text())
或
doc(‘p’).remove()
7.伪类选择器
第一个节点
li=doc('li:first-child')
最后一个节点
li=doc('li:last-child')
偶数节点
li=doc('li:nth-child(2n)')
包含某一文本的节点
li=doc('li:contains(second)')