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 相关文章推荐
完美解决Python2操作中文名文件乱码的问题
Jan 04 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
对numpy中轴与维度的理解
Apr 18 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
django manage.py扩展自定义命令方法
May 27 Python
Python3实现转换Image图片格式
Jun 21 Python
对Python w和w+权限的区别详解
Jan 23 Python
简单了解python的内存管理机制
Jul 08 Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 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 GeoIP的使用教程
2011/03/09 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Django中create和save方法的不同
2019/08/13 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
自主招生自荐信指南
2014/02/04 职场文书
文科生自我鉴定
2014/02/15 职场文书
效能监察建议书
2014/05/19 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
课外活动总结范文
2014/07/09 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
放飞理想主题班会
2015/08/14 职场文书
五年级作文之成长
2019/09/16 职场文书