python下的 pyquery 很给力的 !!!
pyquery 可以让你用jquery语法来对xml进行查询。这个API和jquery十分类似。如果利用lxml,pyquery对xml和html的操作将更加快速。
这个库并不是(至少还不是)一个可以和javascript互交的代码库。只是很喜欢jquery API并且在使用python的过程中,我真的很怀念jquery,所以我告诉我自己“让我们在python里面也使用jquery吧!”所以就有了这个库。
这个库可以有多种用途,比如我可以在将来用pyquery对纯http模板就行编辑,或者可以和Deliverance配套使用对样式进行操作.
这个项目现在基于mercurial开发,并用Bitbucket发布。我有权给任何想要审查代码的人权利。如果你想对代码进行贡献,给我电邮吧。
真心觉得比urllib2好用的多。
http://pypi.python.org/packages/source/p/pyquery/pyquery-0.3.tar.gz
解压缩
python setup.py install
就可以了,可能要安装ezsetup
现在的版本是0.3,还有一些jquery的东西没有实现,比如:radio,:password,以及一些ajax的功能,但是已经够用了,强烈推荐
>>> from pyquery import PyQuery as pq >>>d = pq("<html></html>") #可以直接拼HTML 可加载一段HTML字符串,或一个HTML文件,或是一个url地址 >>>d = pq(url='http://ops.ruifengyun.com/') #也可以打开一个url >>> d('title') #取title元素 [<title>] html()和text() ――获取相应的HTML块或文本块 >>> print d('title').text() ops 自动运维项目 监控,实时数据,集群管理 根据HTML标签来获取元素 >>> d('.s') #根据类名获取元素 [<li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>] 注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块 >>> a = d('#sshcreate li:e(2)').find('a') #复杂点的选择器也是可以的,看来支持的不错 >>> a.attr('href') #属性操作 'http://monitor.ruifengyun.com/'
#coding=utf-8 import urllib from pyquery import PyQuery res = urllib.urlopen('http://movie.douban.com/subject/2129132/').read() d = PyQuery(res) print "主演:" for starring in d("a[rel='v:starring']"): print PyQuery(starring).text()