python pyquery.get()_Python爬虫之PyQuery使用(六)

Python爬虫之PyQuery使用

PyQuery简介

pyquery能够通过选择器精确定位 DOM 树中的目标并进行操作。pyquery相当于jQuery的python实现,可以用于解析HTML网页等。它的语法与jQuery几乎完全相同,对于使用过jQuery的人来说很熟悉,也很好上手。

初始化

有 4 种方法可以进行初始化:

可以通过传入 字符串、lxml、文件 或者 url 来使用PyQuery

from pyquery import PyQuery as pq

from lxml import etree

d = pq("")#传入字符串

d = pq(etree.fromstring(""))#传入lxml

d = pq(url='http://baidu.com/') #传入url

d = pq(filename=path_to_html_file) #传入文件

基本CSS选择器

html='''

  • 歌手高空拍MV坠亡

  • 佛祖朱龙广金婚

  • 常见租房陷阱

  • 靳东回应发错诗词

  • 煤老板们的影视江湖

  • 1024程序员节

  • 美的合并小天鹅

  • 京昆高速4车相撞

'''

from pyquery import PyQuery as pq

doc = pq(html)

# 获取所有a标签

print(doc('body .mh-col li a'))

注意:

类名用.

id用#

标签用标签名

另外选择的是具有层级关系,从左到右,不是直接的父子的关系。

运行结果如下:

歌手高空拍MV坠亡

佛祖朱龙广金婚

常见租房陷阱

靳东回应发错诗词

煤老板们的影视江湖

1024程序员节

美的合并小天鹅

京昆高速4车相撞

操作

html='''

  • 歌手高空拍MV坠亡

  • 佛祖朱龙广金婚

  • 常见租房陷阱

  • 靳东回应发错诗词

  • 煤老板们的影视江湖

  • 1024程序员节

  • 美的合并小天鹅

  • 新闻

    京昆高速4车相撞

'''

from pyquery import PyQuery as pq

doc = pq(html)

items = doc('.mh-col')

#.find():查找嵌套元素

alist = items.find('li a')

print(alist)

#查找所有子元素

alist2 = items.children()

print(alist2)

#查找指定的子元素

alist3 = items.children('.g-ellipsis1')

print(alist2)

#查找父元素

#注意:一个元素只有一个父元素

body = items.parent()

print(body)

#查找祖先元素

content = items.parents()

print(content)

#查找兄弟元素

li = doc('.mh-col .g-ellipsis1')

print(li.siblings())

#遍历 单个元素

#遍历所有的a标签

alist =doc('.mh-col li a').items()

for a in alist: print(a)

获取信息

获取属性

a =doc('.mh-col li .g-a-noline8')

print(a.attr['href'])

print(a.attr.href)

获取文本

a =doc('.mh-col li .g-a-noline8')

print(a.text())

获取HTML

a =doc('.mh-col li .g-a-noline8')

print(a.html())

简单的DOM操作

#addClass、removerClass

#修改类名

a =doc('.mh-col li .g-a-noline8')

print(a)

a.removeClass('g-a-noline8')

print(a)

a.addClass('g-a-noline8')

print(a)

#attr、css

#修改属性和样式

a =doc('.mh-col li .g-a-noline8')

print(a)

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

print(a)

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

print(a)

#remove

#删除标签

li = doc('.mh-col .g-ellipsis8')

print(li)

li.find('a').remove()

print(li)

更多的DOM操作:https://pyquery.readthedocs.io/en/latest/api.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值