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通过解析网页实现看报程序的方法
Aug 04 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python urllib3软件包的使用说明
Nov 18 Python
详解Python中*args和**kwargs的使用
Apr 07 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
Js+XML 操作
2006/09/20 Javascript
javascript静态的url如何传递
2007/05/03 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python装饰器用法实例总结
2018/05/26 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
宝信软件JAVA工程师面试经历
2012/08/19 面试题
节能宣传周活动总结
2014/05/08 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
成绩单评语
2015/01/04 职场文书
芙蓉镇观后感
2015/06/10 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
Elasticsearch 配置详解
2022/04/19 Java/Android