您的位置:首页 > 编程语言 > Python开发

采用python的pyquery引擎做网页爬虫,进行数据分析

2013-02-07 00:52 656 查看
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()




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息