python版本的jquery

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个想法

  1. Kant

    >>> d = pq(’中国人‘)(’a’)
    以上这句应为:
    >>> d = pq(‘中国人‘)(‘a’)

    这个编辑器有问题所以上语句修改了、

    回复
  2. Kant

    pyquery对中文支持得不好,不知博主你有没有什么办法让其对中文有更好的支持呢?我的例子及输出如下:

    >>> from pyquery import PyQuery as pq
    >>> d = pq(‘中国人‘)(‘a’)
    >>> for i in d:
    print i.text

    ÖйúÈË

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据