本文共 1789 字,大约阅读时间需要 5 分钟。
今天介绍的工具是Pyquery,没错,就是jquery的表哥,是用于python的jquery类库。pyquery允许您在xml文档上进行jquery查询。API类似于jquery。pyquery使用lxml进行快速xml和html操作。
pip安装
pip install pyquery
pycharm安装看以前的文章能找到(略)
您可以使用PyQuery类从一个字符串、一个lxml文档,从一个文件或一个url四种方式初始化,分别举例:
>>> from pyquery import PyQuery as pq>>> from lxml import etree>>> import urllib>>> d = pq("") # 字符串>>> d = pq(etree.fromstring("")) # lxml文档>>> d = pq(url='http://google.com/') # url>>> d = pq(filename=path_to_html_file) # 文件
快速体验
以从一个文件方式初始化,文件名‘index.html’,文件内容如下:
- first item
- second item
- third item
- fourth item
- fifth item
编写程序如下:
# -*- coding: utf-8 -*-from pyquery import PyQuery as pqdoc = pq(filename='index.html')print(doc.html())print(type(doc))li = doc('li')print(type(li))print(li.text())
运行结果如下:
属性操作
p = ''doc = pq(p)print(doc.attr('class', '21'))print(doc.attr('src'))print(doc.remove_attr('src'))print(doc.remove_class('21'))print(doc.add_class('22'))print(doc.css('font-size', '16px'))print(doc.css('backgroupd-color', 'red'))
结果:
http://static.firefoxchina.cn/img/201712/5_5a459650ed4440.jpg
发现和jquery操作基本一样,只不过doc相当于$,而且通过上面例子也可以看出p一直是在原来结果上变化的。
DOMp = 'I would like to say:
'doc = pq(p)a = doc.append('Hello a')print(a)b = doc.prepend('Hello b')print(b)
DOM 操作也是与 jQuery 一样。
遍历d = pq('foo bar')print([i.text() for i in d.items('span')])
通过items获取列表内容进行循环,结果如下:
['foo', 'bar']
api
其实要搞好这一章,还是需要去看看jquery,看完之后再回过头来看pyquery,会好很多。
部分内容摘自:转载于:https://blog.51cto.com/linuxliu/2055848