发布于 2016-10-31 22:03:39 | 1008 次阅读 | 评论: 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>