pyquery - PyQuery完整的API
class pyquery.pyquery.PyQuery(*args, **kwargs)
类pyquery.pyquery.PyQuery(* args,** kwargs )
主要类
Fn类
构建自定义函数(如jQuery.fn):
>>> fn = lambda: this.map(lambda i, el: PyQuery(this).outerHtml())
>>> PyQuery.fn.listOuterHtml = fn
>>> S = PyQuery(
... '<ol> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ol>')
>>> S('li').listOuterHtml()
['<li>Coffee</li>', '<li>Tea</li>', '<li>Milk</li>']
添加一个css类到元素:
PyQuery.addClass(value)
>>> d = PyQuery('<div></div>')
>>> d.addClass('myclass')
[<div.myclass>]
在节点后添加值:
将值附加到每个节点:
PyQuery.append(value)
将节点附加到值:
PyQuery.append(value)
返回当前html文档的url,如果不可用则返回None:
PyQuery.base_url
在节点之前插入值:
PyQuery.before(value)
使用可选选择器筛选自己的直接子对象的元素:
PyQuery.children(value)
>>> d = PyQuery('<span><p class="hello">Hi</p><p>Bye</p></span>')
>>> d
[<span>]
>>> d.children()
[<p.hello>, <p>]
>>> d.children('.hello')
[<p.hello>]
返回一个节点的副本:
PyQuery.clone()
返回最近的标签:
PyQuery.closest(selector=None)
>>> d = PyQuery(
... '<div class="hello"><p>This is a <strong class="hello">test</strong></p></div>')
>>> d('strong').closest('div')
[<div.hello>]
>>> d('strong').closest('.hello')
[<strong.hello>]
>>> d('strong').closest('form')
[]
返回内容(带文本节点):
PyQuery.contents()
>>> d = PyQuery('hello <b>bold</b>')
>>> d.contents()
['hello ', <Element b at ...>]
在每个节点上应用func:
PyQuery.each(func)
删除节点内容:
PyQuery.empty()
返回根元素的xml编码:
PyQuery.encoding
打破遍历级别并返回父级别:
PyQuery.end
>>> m = '<p><span><em>Whoah!</em></span></p><p><em> there</em></p>'
>>> d = PyQuery(m)
>>> d('p').eq(1).find('em').end().end()
[<p>, <p>]
仅返回提供索引的元素的PyQuery:
PyQuery.eq(index)
>>> d = PyQuery('<p class="hello">Hi</p><p>Bye</p><div></div>')
>>> d('p').eq(0)
[<p.hello>]
>>> d('p').eq(1)
[<p>]
>>> d('p').eq(2)
[]
用anoter PyQuery对象进行拓展:
PyQuery.extend(other)
自我使用选择器中的元素:
PyQuery.filter(selector)
>>> d = PyQuery('<p class="hello">Hi</p><p>Bye</p>')
>>> d('p')
[<p.hello>, <p>]
>>> d('p').filter('.hello')
[<p.hello>]
>>> d('p').filter(lambda i: i == 1)
[<p>]
>>> d('p').filter(lambda i: PyQuery(this).text() == 'Hi')
[<p.hello>]
>>> d('p').filter(lambda i, this: PyQuery(this).text() == 'Hi')
[<p.hello>]
使用选择器遍历自我查找元素:
PyQuery.find(selector)
>>> m = '<p><span><em>Whoah!</em></span></p><p><em> there</em></p>'
>>> d = PyQuery(m)
>>> d('p').find('em')
[<em>, <em>]
>>> d('p').eq(1).find('em')
[<em>]
如果元素有类,则返回True:
PyQuery.hasClass(name)
>>> d = PyQuery('<div class="myclass"></div>')
>>> d.hasClass('myclass')
True
设置元素的高度:
PyQuery.height(值=<NoDeafault>)
删除display : none 到元素样式:
PyQuery.hide()
>>> print(PyQuery('<div style="display:none;"/>').hide())
<div style="display: none"/>
获取或设置子节点的html表示:
1.获取文本值:
PyQuery.html(value=<NoDefault>, **kwargs)
>>> d = PyQuery('<div><span>toto</span></div>')
>>> print(d.html())
<span>toto</span>
2.额外的参数传递给lxml.etree.tostring:
>>> d = PyQuery('<div><span></span></div>')
>>> print(d.html())
<span/>
>>> print(d.html(method='html'))
<span></span>
3.设置文本值:
>>> d.html('<span>Youhou !</span>')
[<div>]
>>> print(d)
<div><span>Youhou !</span></div>
在值后插入节点:
PyQuery.insertAfter(value)
在值前插入节点:
PyQuery.insertBefore(value)
如果选择器至少匹配一个当前元素,则返回True,否则返回False:
PyQuery.is_(selector)
>>> d = PyQuery('<p class="hello">Hi</p><p>Bye</p><div></div>')
>>> d('p').eq(0).is_('.hello')
True
>>> d('p').eq(1).is_('.hello')
False
返回元素上的PyQuery对象:
PyQuery.items(selector=None)
>>> d = PyQuery('<div><span>foo</span><span>bar</span></div>')
>>> [i.text() for i in d.items('span')]
['foo', 'bar']
>>> [i.text() for i in d('span').items()]
['foo', 'bar']
使所有链接绝对:
PyQuery.make_links_absolute(base_url=None)
用func转换当前项目后,返回一个新的PyQuery。
func应该有两个参数 - '索引'和'元素'。func中的元素也可以被称为'this':
PyQuery.map(func)
>>> d = PyQuery('<p class="hello">Hi there</p><p>Bye</p><br />')
>>> d('p').map(lambda i, e: PyQuery(e).text())
['Hi there', 'Bye']>>> d('p').map(lambda i, e: len(PyQuery(this).text()))
[8, 3]>>> d('p').map(lambda i, e: PyQuery(this).text().split())
['Hi', 'there', 'Bye']
返回该标签的下一个所有标签元素:
PyQuery.nextAll(selector=None)
>>> h = '<span><p class="hello">Hi</p><p>Bye</p><img scr=""/></span>'
>>> d = PyQuery(h)
>>> d('p:last').nextAll()
[<img>]
返回与给定选择器不匹配的元素:
PyQuery.not_(selector)
>>> d = PyQuery('<p class="hello">Hi</p><p>Bye</p><div></div>')
>>> d('p').not_('.hello')
[<p>]
获取第一个选定元素的html值:
PyQuery.outerHtml()
>>> d = PyQuery('<div><span class="red">toto</span> rocks</div>')
>>> print(d('span'))
<span class="red">toto</span> rocks
>>> print(d('span').outerHtml())
<span class="red">toto</span>>>> S = PyQuery('<p>Only <b>me</b> & myself</p>')
>>> print(S('b').outerHtml())
<b>me</b>
选择父标签:
PyQuery.parents(selector=None)[source]
>>> d = PyQuery('<span><p class="hello">Hi</p><p>Bye</p></span>')
>>> d('p').parents()
[<span>]
>>> d('.hello').parents('span')
[<span>]
>>> d('.hello').parents('p')
[]
为节点预留值:
PyQuery.prepend(value)
将节点预先设置为某值:
PyQuery.prependTo(value)
.....:
PyQuery.prevAll(selector=None)
>>> h = '<span><p class="hello">Hi</p><p>Bye</p><img scr=""/></span>'
>>> d = PyQuery(h)
>>> d('p:last').prevAll()
[<p.hello>]
删除节点:
PyQuery.remove(expr=<NoDefault>)
>>> h = '<div>Maybe <em>she</em> does <strong>NOT</strong> know</div>'
>>> d = PyQuery(h)
>>> d('strong').remove()
[<strong>]
>>> print(d)
<div>Maybe <em>she</em> does know</div>
删除属性:
PyQuery.removeAttr(name)
>>> d = PyQuery('<div id="myid"></div>')
>>> d.removeAttr('id')
[<div>]
删除一个CSS类到元素:
PyQuery.removeClass(value)
>>> d = PyQuery('<div class="myclass"></div>')
>>> d.removeClass('myclass')
[<div>]
删除所有名称空间:
PyQuery.remove_namespaces()
>>> doc = PyQuery('<foo xmlns="http://example.com/foo"></foo>')
>>> doc
[<{http://example.com/foo}foo>]
>>> doc.remove_namespaces()
[<foo>]
用expr替换节点:
PyQuery.replaceAll(expr)
用值替换节点:
PyQuery.replaceWith(value)
返回xml根元素:
PyQuery.root
将显示 :块 添加到元素样式:
PyQuery.show()
>>> print(PyQuery('<div />').show())
<div style="display: block"/>
查找兄弟标签:
PyQuery.siblings(selector=None)
>>> h = '<span><p class="hello">Hi</p><p>Bye</p><img scr=""/></span>'
>>> d = PyQuery(h)
>>> d('.hello').siblings()
[<p>, <img>]
>>> d('.hello').siblings('img')
[<img>]
获取或设置子节点的文本:
PyQuery.text(value=<NoDefault>)
1.获取文本值
>>> doc = PyQuery('<div><span>toto</span><span>tata</span></div>')
>>> print(doc.text())
toto tata
2.设置文本值
>>> doc.text('Youhou !')
[<div>]
>>> print(doc)
<div>Youhou !</div>
切换一个CSS类别元素:
PyQuery.toggleClass(value)
>>> d = PyQuery('<div></div>')
>>> d.toggleClass('myclass')
[<div.myclass>]
属性值:
PyQuery.val(value=<NoDefault>)
1.设置属性值:
>>> d = PyQuery('<input />')
>>> d.val('Youhou')
[<input>]
2.获取属性值:
>>> d.val()
'Youhou'
设置/获取元素的宽度:
PyQuery.width(value=<NoDefault>)
一串HTML将被即时创建并包裹在每个目标周围:
PyQuery.wrap(value)
>>> d = PyQuery('<span>youhou</span>')
>>> d.wrap('<div></div>')
[<div>]
>>> print(d)
<div><span>youhou</span></div>
将匹配的集合中的所有元素包装到一个包装元素中:
PyQuery.wrapAll(value)
>>> d = PyQuery('<div><span>Hey</span><span>you !</span></div>')
>>> print(d('span').wrapAll('<div id="wrapper"></div>'))
<div id="wrapper"><span>Hey</span><span>you !</span></div
删除xhtml的命名空间:
PyQuery.xhtml_to_html()
>>> doc = PyQuery(
... '<html xmlns="http://www.w3.org/1999/xhtml"></html>')
>>> doc
[<{http://www.w3.org/1999/xhtml}html>]
>>> doc.remove_namespaces()
[<html>]
借鉴文档翻译,英文文档地址:http://https://pythonhosted.org/pyquery/api.html
中间部分不准确,使用时请注意!
pyquery - PyQuery完整的API相关推荐
- 为什么医疗行业需要完整的API管理系统?
根据斯坦福医学2017年健康趋势报告在过去的十年中,医疗健康行业捕获的数据量大幅增长.这是由于例如政府采取了电子病历(EMR)平台.设备(X射线,MRI,CT等)对医疗记录进行数字化,以及无处不在的个 ...
- 群控sdk二次开发完整调用API(厉害了我的哥。。。)
聚播群控sdk二次开发完整调用API功能 微信加好友功能API 1.导入手机通讯录 2.手机通讯录加好友 3.加指定微信群好友 4.自动通过微信好友请求 5.手机模拟定位 6.附近人加好友 7.各种账 ...
- 如何开发API,这样一份完整的API开发指南足够了
API一词相信每一个开发人员都不陌生,API是软件系统之间或不同组成部分之间进行连接的约定.特别是移动应用程序和微服务架构的不断普及,API就是他们成功背后的功臣,这个时候如何设计和开发API就显得格 ...
- 最新版南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端
南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端 南风表情包小程序源码,独家分享网传最火表情包小程序源码,带有独立版完整后台 API.小程序前端,并附带安装搭建说明.最 ...
- 构建完整的API构架与Buddy API使用示例
本文将带您了解常规API的构架以及HTTP语句与身份验证 权限 默认情况下,每个工作区都启用API.您可以在工作区设置中停用或启用. 调用API方法的权限与网站服务中的权限相同.例如,如果删除项目的权 ...
- Python爬虫利器六PyQuery的用法
你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有了一些 ...
- 芝麻HTTP: Python爬虫利器之PyQuery的用法
2019独角兽企业重金招聘Python工程师标准>>> 前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? ...
- beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库
(给抠腚男孩加星标,提升Python.Android技能) 作者:CoderPig 本节带来数据解析部分最后一个解析库PyQuery,它的API和前端著名框架jQuery相似,名字由此而来.如果你有前 ...
- 爬虫--pyquery使用
强大又灵活的网页解析库. 初始化 字符串初始化 html = ''' <div><ul><li class="item-0">first ite ...
最新文章
- [置顶] Android开发者官方网站文档 - 国内踏得网镜像
- oracle 不等于某类,Oracle如何查询不等于某数值
- 大数据处理工具Kafka、Zk、Spark
- 校验电话号码 手机号码正则表达式
- SharePoint 2019 图文安装教程
- 打造自己的博客(一)利用VuePress完成博客整体搭建,并支持评论和自动发布
- matlab基于技术的磨皮,美颜磨皮SDK中关于磨皮算法的大致实现流程
- 《百家讲坛》之战国七雄
- wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
- 自动统计文件夹下所有音频时长与个数
- iOS超级签名系统源码及分析
- 数据库ALTER语句使用
- Goolge Colab免费GPU服务器使用教程
- 连接mysql数据库报错Cannot create PoolableConnectionFactory
- 什么是堆漏洞挖掘?堆的glibc实现、Arena(main_arena、thread_arena)
- 单因素方差分析和多因素方差分析的差异是什么?
- Lua string转table
- 显卡驱动的作用(本质作用)
- oracle中累计求和_oracle求和代码示例
- 如何获得淘宝店铺详情API接口
热门文章
- 什么是大端小端 and 如何判断大端小端
- MYSQL数据库提权的几种方法——提权教程
- word中自动添加公式编号以及引用公式编号
- 夫妻之间需要偷偷存钱吗?
- 腾讯微信惊天漏洞,利用手机号致帐号丢失无法找回!——论个人信息安全与防护
- QL是高级的非过程化编程语言
- 腾然教育MCN覃小龙公子:覃宣量2022年2岁10个月亲子照
- 开发者福利丨容联云通讯、LeanCloud 官方集成云账户红包SDK
- 学计算机的气质,大学生“气质大比拼”!闷骚型计算机,直男癌土木工程,你躺枪没...
- MTK 安卓主板 开发板,工业安卓一体机的特点与优势