博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运维学python之爬虫工具篇(六)Pyquery的用法
阅读量:6417 次
发布时间:2019-06-23

本文共 1789 字,大约阅读时间需要 5 分钟。

1 简介

今天介绍的工具是Pyquery,没错,就是jquery的表哥,是用于python的jquery类库。pyquery允许您在xml文档上进行jquery查询。API类似于jquery。pyquery使用lxml进行快速xml和html操作。

2 安装

pip安装

pip install pyquery

pycharm安装看以前的文章能找到(略)

3 初始化

您可以使用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) # 文件

4 快速开始

快速体验

以从一个文件方式初始化,文件名‘index.html’,文件内容如下:

编写程序如下:

# -*- 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())

运行结果如下:

first item second item third item fourth item fifth item

属性操作

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一直是在原来结果上变化的。

DOM

p = '

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

你可能感兴趣的文章
【iOS】iOS之Button segue弹出popOver消除(dismiss)问题
查看>>
java多线程系列5-死锁与线程间通信
查看>>
数据库分库分表
查看>>
腾讯Hermes设计概要——数据分析用的是列存储,词典文件前缀压缩,倒排文件递增id、变长压缩、依然是跳表-本质是lucene啊...
查看>>
小程序模板嵌套以及相关遍历数据绑定
查看>>
Systemd入门教程:命令篇(转)
查看>>
java随机范围内的日期
查看>>
spring事务学习(转账案例)(二)
查看>>
[官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机
查看>>
http协议与http代理
查看>>
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例...
查看>>
Redis+Spring缓存实例
查看>>
Storm集群安装详解
查看>>
centos7.x搭建svn server
查看>>
原码编译安装openssh6.7p1
查看>>
项目实战:自定义监控项--监控CPU信息
查看>>
easyui-datetimebox设置默认时分秒00:00:00
查看>>
蚂蚁分类信息系统5.8多城市UTF8开源优化版
查看>>
在django1.2+python2.7环境中使用send_mail发送邮件
查看>>
“Metro”,移动设备视觉语言的新新人类
查看>>