setuptools绝对是个好东西,它可以自动的安装模块,只需要你提供给它一个模块名字就可以了,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里,下面看看怎么用setuptools。
首先,需要安装setuptools这个东西,安装它很简单,先去下载一个脚本: http://peak.telecommunity.com/dist/ez_setup.py 下载完后直接执行它就会帮你把setuptools给装好了。
之后安装模块的使用方法就是使用一个叫easy_install的命令,在Windows里,这个命令在python安装目录下的scripts里面,所以需要把scripts加到环境变量的PATH里,如下图所示。这样用起来就更方便,linux下不需要注意这个问题。
安装软件只需要执行
easy_install 模块名
就可以了,比如要安装pyquery,就把上面的模块名换成 pyquery 就可以了。
PyQuery是一个类似于jQuery的Python库,也可以说是jQuery在Python上的实现。pyQuery是使用lxml来实现快速的xml和html操作的。具体的PyQuery文档见:http://pyquery.org/
用这个来做蜘蛛爬数据的时候分析html并从中提取数据还是很爽的。
废话不多说,直接看一点简单的例子吧:
>>> from pyquery import PyQuery as pq
>>> d = pq("<html></html>") #可以直接拼HTML
>>> d = pq(url='http://www.powereasy.net/') #也可以打开一个url
>>> d('title') #取title元素
[<title>]
>>> print d('title').text()
动易网络 - 领先的内容管理系统(CMS)、企业级电子商务平台(B2C)和站群管理系统(SiteGroup)提供商
>>> print d("#logo").html() #根据ID获取元素
<a href="http://www.powereasy.net" title="动易网络">官方主站</a>
>>> d('.s') #根据类名获取元素
[<li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>]
>>> a = d('#topNavIn li:eq(5)').find('a') #复杂点的选择器也是可以的,看来支持的不错
>>> a.attr('href') #属性操作
'http://sms.powereasy.net/'
>>> a.attr('href', 'http://qleelulu.cnblogs.com').attr('href') #修改属性值
'http://qleelulu.cnblogs.com'
>>> d('#LoginFrom').hasClass('Login_ajax') #css类操作
True
>>> d('#LoginFrom').addClass('lulu').attr('class') #css类操作
'lulu Login_ajax'
>>>