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爬虫框架Scrapy安装使用步骤
Apr 01 Python
Django应用程序中如何发送电子邮件详解
Feb 04 Python
python实现文本界面网络聊天室
Dec 12 Python
在python里面运用多继承方法详解
Jul 01 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
Python图片的横坐标汉字实例
Dec 04 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
Python短信轰炸的代码
Mar 25 Python
python实现手机推送 代码也就10行左右
Apr 12 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 动态执行带有参数的类方法
2009/04/10 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
php MessagePack介绍
2013/10/06 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
详解javascript高级定时器
2015/12/31 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
微信小程序定位当前城市的方法
2018/07/19 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python插入排序算法的实现代码
2013/11/21 Python
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
我的中国梦演讲稿500字
2014/08/19 职场文书
2014年纪委工作总结
2014/12/05 职场文书
终止劳动合同通知书
2015/04/16 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
浅谈Redis的几个过期策略
2021/05/27 Redis
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
Python办公自动化解决world文件批量转换
2021/09/15 Python