Python中的jquery PyQuery库使用小结


Posted in Python onMay 13, 2014

pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,使用方法:

from pyquery import PyQuery as pq

1、可加载一段HTML字符串,或一个HTML文件,或是一个url地址,例:
d = pq("<html><title>hello</title></html>")
d = pq(filename=path_to_html_file)
d = pq(url='http://www.baidu.com') # 此处url必须写全

2、html() 和 text() ——获取相应的HTML块或文本块,例:
p = pq("<head><title>hello</title></head>")
p('head').html()  # 返回<title>hello</title>
p('head').text()  # 返回hello

3、根据HTML标签来获取元素,例:
d = pq('<div><p>test 1</p><p>test 2</p></div>')   
d('p')    # 返回[<p>,<p>]
print d('p')  # 返回<p>test 1</p><p>test 2</p>
print d('p').html()  # 返回test 1

注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块

4、eq(index) ——根据给定的索引号得到指定元素

接上例,若想得到第二个p标签内的内容,则可以:

print d('p').eq(1).html()   # 返回test 2

5、filter() ——根据类名、id名得到指定元素,例:

d = pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('p').filter('#1')   # 返回[<p#1>]
d('p').filter('.2')   # 返回[<p.2>]

6、find() ——查找嵌套元素,例:
d = pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('div').find('p')   # 返回[<p#1>, <p.2>]
d('div').find('p').eq(0)  #返回[<p#1>]

7、直接根据类名、id名获取元素,例:
d = pq("<div><p id='1'>test 1</p><p class='2'>test 2</p></div>")
d('#1').html() # 返回test 1
d('.2').html() # 返回test 2

8、获取属性值,例:
d = pq("<p id='my_id'><a href='http://hello.com'>hello</a></p>")
d('a').attr('href')  # 返回http://hello.com
d('p').attr('id')  # 返回my_id

9、修改属性值,例:
d('a').attr('href', 'http://baidu.com')

10、addClass(value) ——为元素添加类,例:

d = pq('<div></div>')
d.addClass('my_class')   # 返回[<div.my_class>]

11、hasClass(name) #返回判断元素是否包含给定的类,例:
d = pq("<div class='my_class'></div>")
d.hasClass('my_class')   # 返回True

12、children(selector=None) ——获取子元素,例:
d = pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")
d.children()   # 返回[<p#1>, <p#2>]
d.children('#2')   # 返回[<p#2>]

13、parents(selector=None)——获取父元素,例:
d = pq("<span><p id='1'>hello</p><p id='2'>world</p></span>")
d('p').parents()    # 返回[<span>]
d('#1').parents('span')   # 返回[<span>]
d('#1').parents('p')   # 返回[]

14、clone() ——返回一个节点的拷贝

15、empty() ——移除节点内容

16、nextAll(selector=None) ——返回后面全部的元素块,例:

d = pq("<p id='1'>hello</p><p id='2'>world</p><img scr='' />")
d('p:first').nextAll()   # 返回[<p#2>, <img>]
d('p:last').nextAll()   # 返回[<img>]

17、not_(selector) ——返回不匹配选择器的元素,例:
d = pq("<p id='1'>test 1</p><p id='2'>test 2</p>")
d('p').not_('#2')    # 返回[<p#1>]

更多内容,参考官网 http://packages.python.org/pyquery
Python 相关文章推荐
python超简单解决约瑟夫环问题
May 12 Python
python实现红包裂变算法
Feb 16 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
python学生信息管理系统(初级版)
Oct 17 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
python读文件的步骤
Oct 08 Python
python3中numpy函数tile的用法详解
Dec 04 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Pytorch之finetune使用详解
Jan 18 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
Python getopt模块处理命令行选项实例
May 13 #Python
Python random模块(获取随机数)常用方法和使用例子
May 13 #Python
Python自动化测试工具Splinter简介和使用实例
May 13 #Python
Python获取远程文件大小的函数代码分享
May 13 #Python
Python FTP操作类代码分享
May 13 #Python
python生成指定尺寸缩略图的示例
May 07 #Python
python读取浮点数和读取文本文件示例
May 06 #Python
You might like
php自动适应范围的分页代码
2008/08/05 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
js常用DOM方法详解
2017/02/04 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
js回调函数仿360开机
2019/12/26 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
numpy.array 操作使用简单总结
2019/11/08 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
哈理工毕业生的求职信
2013/12/22 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
红色影片观后感
2015/06/18 职场文书
结婚司仪主持词
2015/06/29 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
python APScheduler执行定时任务介绍
2022/04/19 Python