爬虫·崔庆才网课笔记第三章

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)')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值