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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
python和shell变量互相传递的几种方法
Nov 20 Python
python处理cookie详解
Feb 07 Python
python动态加载变量示例分享
Feb 17 Python
Python深入学习之闭包
Aug 31 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
pytorch 输出中间层特征的实例
Aug 17 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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 中include()与require()的对比
2006/10/09 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
Django的性能优化实现解析
2019/07/30 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
linux面试题参考答案(3)
2012/09/13 面试题
后勤副校长自我鉴定
2013/10/13 职场文书
生日寿星公答谢词
2015/09/29 职场文书
远程教育培训心得体会
2016/01/09 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
Mysql 如何查询时间段交集
2021/06/08 MySQL
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python