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入门学习之字符串与比较运算符
Oct 12 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
Python实现快速计算词频功能示例
Jun 25 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
python实现对输入的密文加密
Mar 20 Python
Django框架安装方法图文详解
Nov 04 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
python list的index()和find()的实现
Nov 16 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数组排序usort、uksort与sort函数用法
2014/11/17 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
Python devel安装失败问题解决方案
2020/06/09 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
谈谈python垃圾回收机制
2020/09/27 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
公务员培训心得体会
2013/12/28 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
文案策划岗位职责
2015/02/11 职场文书
党内外群众意见范文
2015/06/02 职场文书
小型婚礼主持词
2015/06/30 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android