发布于 2016-10-31 22:03:39 | 987 次阅读 | 评论: 0 | 来源: PHPERZ

class pyquery.pyquery.PyQuery(*args, **kwargs)

主要的类

< >addClass(value)

给元素添加css类:

>>> d = PyQuery('<div></div>')
>>> d.addClass('myclass')

[<div.myclass>]

after(value)给节点添加值append(value)给每个节点添加值appendTo(value)给值添加节点attr支持set/get/del 属性,类似javascript样式。base_url返回当前html文档的url,如果不存在则返回None。before(value)在节点前插入值clone()css支持 set/get/del 属性,类似javascript样式。each(func)给每个节点添加func。empty()删除节点内容。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>]

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>]

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>]

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>]

hasClass(name)

如果拥有该class则返回True:

>>> d = PyQuery('<div class="myclass"></div>')
>>> d.hasClass('myclass')

True

height(value=<NoDefault>)设置或获取元素的高度值hide()给display添加none于元素样式html(value=<NoDefault>)

设置或者获取子节点html的表达方法。

获取文本值:

>>> doc = PyQuery('<div><span>toto</span></div>')
>>> print doc.html()
<span>toto</span>

设置文本值:

>>> doc.html('<span>Youhou !</span>')
[<div>]
>>> print doc
<div><span>Youhou !</span></div>

insertAfter(value)在值后面添加节点insertBefore(value)在值前添加节点is_(selector)如果选择器符合当前元素则返回True,否则返回False。 >>> 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’) Falsemake_links_absolute(base_url=None)生成绝对链接。map(func)

当用户完成转换后,返回一个新的PyQuery对象。

func 需要两个参数 - ‘index’ 和 ‘element’. 在func里面,元素可以用 ‘this’代替。

>>> 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']

not_(selector)

返回不符合选择器的元素。

>>> d = PyQuery('<p class="hello">Hi</p><p>Bye</p><div></div>')
>>> d('p').not_('.hello')
[<p>]

prepend(value)给节点前附加一个值prependTo(value)给值前附加一个节点。remove(expr=<NoDefault>)删除节点。removeAttr(name)

删除一个属性:

>>> d = PyQuery('<div id="myid"></div>')
>>> d.removeAttr('id')

[<div>]

removeClass(value)

删除一个元素的css类

>>> d = PyQuery('<div class="myclass"></div>')
>>> d.removeClass('myclass')
[<div>]

replaceAll(expr)用表达式替换节点。replaceWith(value)用值替换节点。show()将元素的display属性更变为block。text(value=<NoDefault>)

设置或者获得子元素的文本。

获得文本值:

>>> doc = PyQuery('<div><span>toto</span><span>tata</span></div>')
>>> print doc.text()
toto tata

设置文本值:

>>> doc.text('Youhou !')
[<div>]
>>> print doc
<div>Youhou !</div>

toggleClass(value)

开关元素的某个css类

>>> d = PyQuery('<div></div>')
>>> d.toggleClass('myclass')
[<div.myclass>]

val(value=<NoDefault>)

设置或者获得元素值:

>>> d = PyQuery('<input />')
>>> d.val('Youhou')

[<input>] >>> d.val() ‘Youhou’

width(value=<NoDefault>)set/get width of elementwrap(value)

每个对象将实时添加HTML字符串:

>>> d = PyQuery('<span>youhou</span>')
>>> d.wrap('<div></div>')
[<div>]
>>> print d
<div><span>youhou</span></div>

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>

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务