CSS选择器

1、初始化

html='''
<div>
<ul>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0 "><a href="link5.html">fifth item</a></li>
</ul>
</div>
''' from pyquery import PyQuery as pq
## 字符串初始化
doc = pq(html)
print(doc('li')) ## URL初始化
doc= pq(url='https://cuiqingcai.com')
print(doc('title')) ## 文件初始化
doc = pq(filename='test.html')
print(doc('li'))

2、CSS选择器

# CSS选择器
from pyquery import PyQuery as pq
doc = pq(html)
## id用 #,class用 .
print(doc('#container .list li'))

 

3、查找节点

html='''
<div id="container">
<ul class="list">
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0 "><a href="link5.html">fifth item</a></li>
</ul>
</div>
''' ##查找节点
from pyquery import PyQuery as pq
doc = pq(html)
items = doc('.list')
print(items) ## find() 查找所有地子孙节点
lis = items.find('a')
print(lis) ## children() 只查找子节点
lis = items.children('.active')
print(lis) ## parent() 查找父节点
container = items.parent()
print(container) ## parents() 查找祖先节点
ancestor = items.parents()
print(ancestor) ## siblings() 查找兄弟节点
li = doc('.item-0.active')
print(li.siblings('.active'))

4、遍历 

from pyquery import PyQuery as pq
doc = pq(html)
## 调用items()得到一个生成器,for in 进行遍历
lis = doc('li').items()
for li in lis:
print(li)

5、获取内容

from pyquery import PyQuery as pq
doc = pq(html)
a = doc('.item-0 a')
print(a)

## 获取 a节点的 href的属性值
## attr()只返回第一个结果
print(a.attr('href'))
print(a.attr.href)

## 通过遍历获取所有的属性值
for item in a.items():
print(item.attr('href'))
## 只获取文本 多个节点的文本内容用 空格 间隔开
print(a.text()) ## third item fifth item ## 获取包含 a节点内部所有内容,包含节点,返回第一个 a节点 内部的HTML文本
print(a.html()) # <span class="bold">third item</span>

  

6、节点操作

## 节点操作
## remove() html ='''
<div class="wrap">
Hello World
<p>呱呱呱</p>
</div>
'''
## 只想获得Hello World
from pyquery import PyQuery as pq
doc = pq(html)
wrap = doc('.wrap')
## 移除 p节点
wrap.find('p').remove()
print(wrap.text())

  

7、伪类选择器

html='''
<div id="container">
<ul class="list">
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0 "><a href="link5.html">fifth item</a></li>
</ul>
</div>
''' from pyquery import PyQuery as pq
doc = pq(html) ## 第一个li节点
li = doc('li:first-child')
print(li) ## 最后一个li节点
li = doc('li:last-child')
print(li) ## 第2个li节点
li = doc('li:nth-child(2)')
print(li) ## 包含‘second’文本的li节点
li = doc('li:contains(second)')
print(li)

  

  

  

最新文章

  1. JS魔法堂:元素克隆、剪切技术研究
  2. 【XLL API 函数】xlfUnregister (Form 2)
  3. Flink -- Failover
  4. Nordic Semiconductor nRF52832 蓝牙智能多协议单芯片解决方案荣获《中国电子商情》编辑选择奖
  5. sqlserver -- 学习笔记(三)解决php连接sqlserver2005视图时显示“异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项”的问题
  6. JavaWeb学习篇之----容器Response详解
  7. poj 3463 Sightseeing( 最短路与次短路)
  8. Github上关于大数据的开源项目、论文等合集
  9. Convert.ToInt32()与int.Parse()的区别 (转载)
  10. Android:Fragment+ViewPager实现Tab滑动
  11. PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)
  12. asp.net iis URLRewrite 实现方法详解
  13. JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内
  14. 【linux】 LINUX FTP搭建
  15. LeetCode--029--两数相除(java)
  16. luogu P1439 【模板】最长公共子序列(LCS)
  17. (3.4)mysql基础深入——mysql.server启动脚本源码阅读与分析
  18. 获取url路径中的参数
  19. 采集的时候,列表的编码是gb2312,内容页的编码却是UTF-8,这种网站怎么采集?
  20. JavaScript -- 操作input CheckBox 全选框

热门文章

  1. git介绍和常用操作
  2. styled-components 全局样式定义,由injectGlobal改为createGlobalStyle
  3. Python的入门学习Day 28~30——form”夜曲编程“
  4. Netty实战学习笔记
  5. 消息队列RocketMQ应用
  6. Educational Codeforces Round 143 (Rated for Div
  7. uniapp获取位置
  8. Linux 扩容 / 根分区(LVM+非LVM)
  9. Python语言基础学习报告
  10. WRF rsl.out文件研究