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中的join()函数的用法
Apr 07 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
关于Django外键赋值问题详解
Aug 13 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
深入解析神经网络从原理到实现
Jul 26 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
查看keras的默认backend实现方式
Jun 19 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注入实现(测试代码安全不错)
2011/02/27 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
javascript 写类方式之二
2009/07/05 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python中几个比较常见的名词解释
2015/07/04 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
2014年党员自我剖析材料
2014/10/07 职场文书
党员转正意见怎么写
2015/06/03 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
导游词之井冈山
2019/11/20 职场文书