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统计文本文件内单词数量的方法
May 30 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Python实现最常见加密方式详解
Jul 13 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
python 装饰器的基本使用
Jan 13 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 &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP7 标准库修改
2021/03/09 PHP
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
单链表反转python实现代码示例
2018/02/08 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
Python timeit模块的使用实践
2020/01/13 Python
python Canny边缘检测算法的实现
2020/04/24 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
商场周年庆活动方案
2014/08/19 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
节水倡议书
2015/01/19 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers