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中偏函数partial用法实例分析
Jul 08 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
深入理解Django的中间件middleware
Mar 14 Python
python人民币小写转大写辅助工具
Jun 20 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
python 使用建议与技巧分享(四)
Aug 18 Python
python中的时区问题
Jan 14 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
js常用DOM方法详解
2017/02/04 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python中readline判断文件读取结束的方法
2014/11/08 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python优先队列实现方法示例
2017/09/21 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
python Pygame的具体使用讲解
2017/11/03 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
运动会广播稿500字
2014/01/28 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL