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判断变量是否已经定义的方法
Aug 18 Python
详解Python之unittest单元测试代码
Jan 24 Python
python爬取各类文档方法归类汇总
Mar 22 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
浅析PEP572: 海象运算符
Oct 15 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
关于Python中定制类的比较运算实例
Dec 19 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
Python实现单例模式的5种方法
Jun 15 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 Python
一篇文章弄懂Python中的内建函数
Aug 07 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字符串函数学习之strstr()
2015/03/27 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
windows下python安装pip方法详解
2020/02/10 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
致1500米运动员广播稿
2014/02/07 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
党员批评与自我批评
2014/10/15 职场文书
2014年后勤工作总结
2014/11/18 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
Python WSGI 规范简介
2021/04/11 Python
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers