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中装饰器高级用法详解
Dec 25 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python常见工厂函数用法示例
Mar 21 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
python实现批量修改服务器密码的方法
Aug 13 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python可迭代对象去重实例
May 15 Python
Python日志处理模块logging用法解析
May 19 Python
Python实现寻找回文数字过程解析
Jun 09 Python
Django框架中表单的用法
Jun 10 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
基于empty函数的输出详解
2013/06/17 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue实现微信获取用户信息的方法
2019/03/21 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python配置文件写入过程详解
2019/10/19 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
财务会计毕业生自荐信
2013/11/02 职场文书
语文教学感言
2014/02/06 职场文书
《四季》教学反思
2014/04/08 职场文书
班级课外活动总结
2014/07/09 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
八达岭长城导游词
2015/01/30 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python