Python 插件杂谈 (3) ---- PyQuery , Python中的网页分析利器

来源:互联网 发布:车销 软件 编辑:程序博客网 时间:2024/05/29 16:30


     嗯哼,Meego中文核心站-- 米趣网 又发新博文啦, PyQuery 是Python下用于 分析网页内容  的工具。 有点像 BeautifulSoup,但是功能更近似于 JQuery ,相信用过 BeautifulSoup
的朋友对他的操作深有印象,远不及 JQuery的语法来得简单明了。
    先来段介绍:
    PyQuery
允许你使用 JQuery 的语法访问 XML 文档。PyQuery的API尽可能地与JQuery相似。PyQuery
使用 lxml 快速分析 xml 和 html文档。
    但是 PyQuery不是(起码不再是)用来生成javascript 或者与javascript代码的库。我(作者本人)只是喜欢 JQuery 的 api 而在Python中找不到这样的工具,所以我告诉我自己在Python中制造这样的一个工具,于是就有了PyQuery 的产生。
   
PyQuery可以用来实现多种用途,有一个主意我未来可能实现的,那就是使用它来模板化纯粹的http模板。我也用它进行网页抓取进而实现 装饰Deliverance 应用程序。
   
   接着来段Demo,让大家对 PyQuery 有个认识:

  1. >>> from pyquery import PyQuery as pq
  2. >>> from lxml import etree
  3. >>> import urllib
  4. >>> d = pq("<html></html>")
  5. >>> d = pq(etree.fromstring("<html></html>"))
  6. >>> d = pq(url='http://google.com/')
  7. >>> d = pq(url='http://google.com/', opener=lambda url: urllib.urlopen(url).read())
  8. >>> d = pq(filename=path_to_html_file)
复制代码

  上面的 d 有点像 jQuery 中的 $

  
  1. >>> d("#hello")
  2. [<p#hello.hello>]
  3. >>> p = d("#hello")
  4. >>> p.html()
  5. 'Hello world !'
  6. >>> p.html("you know <a href='http://python.org/'>Python</a> rocks")
  7. [<p#hello.hello>]
  8. >>> p.html()
  9. u'you know <a href="http://python.org/">Python</a> rocks'
  10. >>> p.text()
  11. 'you know Python rocks'
复制代码

   你可以使用很多 JQuery 类似的语法, 不过不包括那样不在css标准中的语法,如::first :last :even dd :eq :lt :gt :checked :selected :file:

   
  1. >>> d('p:first')
  2. [<p#hello.hello>]
复制代码


     最后,我就不啰嗦了,为大家提供一下, PyQuery的文档