jquery在做html内容提取,分析的时候很方便。而python做类似的工作就麻烦一点,原来我都是用正则表达式或者HtmlParser的。
两者用着都不是太爽,今天发现了一个好东西 pyquery ,一个类似jquery的python库。
摘抄一段使用说明
>>> from pyquery import PyQuery as pq >>> from lxml import etree >>> d = pq("<html></html>") >>> d = pq(etree.fromstring("<html></html>")) >>> d = pq(url='http://google.com/') >>> d = pq(filename=path_to_html_file)
Now d is like the $ in jquery:
>>> d("#hello") [<p#hello.hello>] >>> p = d("#hello") >>> p.html() 'Hello world !' >>> p.html("you know <a href='http://python.org/'>Python</a> rocks") [<p#hello.hello>] >>> p.html() 'you know <a href="http://python.org/">Python</a> rocks' >>> p.text() 'you know Python rocks'
简单吧,安装也很简单
下载
http://pypi.python.org/packages/source/p/pyquery/pyquery-0.3.tar.gz
解压缩
python setup.py install
就可以了,可能要安装ezsetup
现在的版本是0.3,还有一些jquery的东西没有实现,比如:radio,:password,以及一些ajax的功能,但是已经够用了,强烈推荐。
赶紧试试吧。
还有一个BeautifulSoup,也推荐一下
《 “python版本的jquery” 》 有 5 条评论
不错,正则控路过
pyquery应该没有对编码进行特别处理,你做其他操作不乱么?
>>> d = pq(’中国人‘)(’a’)
以上这句应为:
>>> d = pq(‘中国人‘)(‘a’)
这个编辑器有问题所以上语句修改了、
pyquery对中文支持得不好,不知博主你有没有什么办法让其对中文有更好的支持呢?我的例子及输出如下:
>>> from pyquery import PyQuery as pq
>>> d = pq(‘中国人‘)(‘a’)
>>> for i in d:
print i.text
ÖйúÈË
这个不错,这几天正在研究BeautifulSoup呢。