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 相关文章推荐
web.py在模板中输出美元符号的方法
Aug 26 Python
初步解析Python下的多进程编程
Apr 28 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
python中reload(module)的用法示例详解
Sep 15 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
python读取并写入mat文件的方法
Jul 12 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
Python爬取365好书中小说代码实例
Feb 28 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
Python中的min及返回最小值索引的操作
May 10 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实现将GB编码转换为UTF8
2006/11/25 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php格式化json函数示例代码
2016/05/12 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
AngularJS基础知识
2014/12/21 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
一步步教你用Python实现2048小游戏
2017/01/19 Python
python实现手机销售管理系统
2019/03/19 Python
python保留小数位的三种实现方法
2020/01/07 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
机械专业毕业生推荐信范文
2013/11/25 职场文书
高级编程求职信模板
2014/02/16 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
民间个人借款协议书
2014/09/30 职场文书
后进生评语大全
2015/01/04 职场文书
涨价通知
2015/04/23 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python