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 web程序
Sep 11 Python
python统计一个文本中重复行数的方法
Nov 19 Python
由Python运算π的值深入Python中科学计算的实现
Apr 17 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
python docx 中文字体设置的操作方法
May 08 Python
python使用rpc框架gRPC的方法
Aug 24 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python实现多线程端口扫描
Aug 31 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 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中strlen和mb_strlen函数的区别
2014/03/07 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
python中正则表达式的使用方法
2018/02/25 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
路政管理专业推荐信
2013/11/11 职场文书
研究生求职推荐信范文
2013/11/30 职场文书
食品安全处置方案
2014/06/14 职场文书
建国大业观后感800字
2015/06/01 职场文书
总结会主持词
2015/07/02 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL