python爬虫知识点总结_python爬虫知识点总结(七)PyQuery详解

一、什么是PyQuery?

答:强大有灵活的网页解析库,模仿jQuery实现。如果你觉得正则表达式写起来太麻烦,如果你觉的BeautifulSoup语法太难记,如果你熟悉jQuery的语法,那么PyQuery就是你的绝佳选择。

二、安装

pip3 install pyquery

三、初始化

1、字符串初始化

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

print(doc('li'))

2、URL初始化

from pyquery import PyQuery as pq

doc = pq(url="http://www.baidu.com")

print(doc('head'))

3、文本初始化

from pyquery import PyQuery as pq

doc = pq(filename = 'demo.html')

print(doc('li'))

四、基本CSS选择器

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

print(doc('#container .list li'))

1、查找元素

子元素

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

items = doc('.list')

print(type(items))

print(items)

lis = items.find('li')

print(type(lis))

print(lis)

lis = items.children()

print(type(lis))

print(lis)

lis = items.children('.active')

print(lis)

父元素

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

items = doc('.list')

container = items.parent()

print(type(container))

print(container)

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

items = doc('.list')

container = items.parents()

print(type(container))

print(container)

parent = items.parents('.wrap')

print(parents)

兄弟元素

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.list .item-0.active')

print(li.siblings())

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.list .item-0.active')

print(li.siblings('.active'))

五、遍历

1、单个元素

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.item-0.active')

print(li)

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

lis = doc('li').items()

print(type(lis))

for li in lis:

print(li)

2、获取信息

获取属性

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

a = doc('.item-0.active a')

print(a)

print(a.attr('href'))

print(a.attr.href)

获取文本

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

a = doc('.item-0.active a')

print(a)

print(a.attr('href'))

print(a.text())

获取HTML

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.item-0.active')

print(li)

print(li.html())

六、DOM操作

1、addClass\removeClass

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.item-0.active')

print(li)

li.removeClass('active')

print(li)

li.addClass('active')

print(li)

2、attr、css

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc('.item-0.active')

print(li)

li.attr('name','link')

print(li)

li.css('font-size','14px')

print(li)

3、remove

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

wrap = doc('.wrap')

print(wrap.text())

wrap.find('p').remove()

print(wrap.text())

其他DOM方法

七、伪类选择器

html = '''

'''

from pyquery import PyQuery as pq

doc = pq(html)

li = doc("li:first-child")

print(li)

li = doc("li:last-child")

print(li)

# 标签从0开始

li = doc("li:nth-child(2)") # ntj-child(2)获取第2个标签

print(li)

li = doc("li:gt(2)") # gt-child(2)获取比2大的标签

print(li)

li = doc("li:nth-child(2n)") # nth-child(2n)获取偶数的标签

print(li)

li = doc("li:contains(second)") # contains(second)获取包含second文本的标签

print(li)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值