- 初始化
html='<div class="header wrap"><a href="#" class="logo"><img src="images/logo.png" alt=""></a><ul class="nav"><li class="active"><a href="#">官网首页<em>HOME</em></a></li><li><a href="#">全新VIP<em>NEW VIP</em></a></li><li><a href="#">电子代理<em>AGENT</em></a></li><li><a href="#">活动大厅<em>ACTIVITY</em></a></li><li><a href="#">手机APP下载<em>MOBILE</em></a></li><li><a href="#">在线客服<em>SERVICE</em></a></li></ul></div>'
from pyquery import PyQuery as pq
#字符串初始化 doc此时为元素对象
doc = pq(html)
# 使用查找方法与用jquery一样,中间用空格分开,按照一定的层级关系可查找到,id选择器使用# 类选择器使用.
print(doc('li a em'))
#URL初始化 传入url,自动请求连接得到的数据
doc = pq(url='http://www.baidu.com')
# print(doc)
#文件初始化 传入文件目录/文件名
doc = pq(filename='demo.html')
print(doc)
- 子元素查找
html='<div class="header wrap"><a href="#" class="logo"><img src="images/logo.png" alt=""></a><ul class="nav"><li class="active"><a href="#">官网首页<em>HOME</em></a></li><li><a href="#">全新VIP<em>NEW VIP</em></a></li><li><a href="#">电子代理<em>AGENT</em></a></li><li><a href="#">活动大厅<em>ACTIVITY</em></a></li><li><a href="#">手机APP下载<em>MOBILE</em></a></li><li><a href="#">在线客服<em>SERVICE</em></a></li></ul></div>'
from pyquery import PyQuery as pq
#字符串初始化 doc此时为元素对象
doc = pq(html)
li = doc('li')
print(type(li)) #打印类型为pyquery类型
print (li)
a = li.find('a') #查找子类型
a = li.children() #查找直接子元素
ul = li.parent() #查找直接父级元素
li = li.siblings() #查找兄弟元素
print (type(a)) #打印类型仍为pyquery类型,可以继续向下层层查找
print (a)
- 遍历
# 遍历
lis = a.items() #用.items方法,生成一个指针器 类型为generator 可用for循环遍历
print (lis)
for li in lis:
print (li)
- 获取信息
# 获取属性,用attr 可获取里面的跳转连接href 样式名等
print (li.attr('class'))
print (li.attr('href'))
# 获取文本,用text方法
print (li.text())
# 获取html ,用html方法
print (li.html())
- DOM操作
#dom操作与jquery操作一样
li.addClass('active') #添加样式名
li.removeClass('active') #移除样式名
li.attr('name','link') #添加属性 name='link' 如果存在name则覆盖
li.css('font-size','14px') #添加样式css
- remove 移除某段信息
# 获取文本,用text方法
print (li.text())
# 删除a标签里<em>标签的文字
li.find('em').remove()
print (li.text())
7.pyquery 操作api查看手册
https://pyquery.readthedocs.io/en/latest/api.html
8.
9.