学习PyQuery库
学习PyQuery库
好了,又是学习的时光啦,今天学习pyquery 来进行网页解析
常规导入模块(PyQuery库中的pyquery类)
from pyquery import PyQuery as pq
通常使用url初始化
doc = pq(url='http://www.baidu.com')
文件初始化
doc = pq(filename='demo.html')
基本CSS选择器的使用,以起点中文网的为例子
doc = pq(url='https://www.qidian.com/free/all')
下面来获取小说名字信息
1.打开浏览器,进入要分析的网页
2.F12开发人员调试工具

3.进行元素检查
4.定位到爬取节点指定位置
5.分析一下 我们自己写 CSS选择器方法
id 使用的是# class 使用的是英文句号 空格代表 层级关系

此时我们先使用语句来获取页面中的所有<h4>的元素
doc = pq(url='https://www.qidian.com/free/all')
a = doc('h4').items()
for i in a:
print(i)
迭代出所筛选出来的结果

但也会遇到上面的情况,共同是h4元素的,但筛选到我们不想要的数据。
这时我们可以采用往上级找,直到找到有区别的元素。

doc = pq(url='https://www.qidian.com/free/all')
a = doc('.book-mid-info h4').items()
for i in a:
print(i)
得到了期待的数据!!!(要还是有那前两个,说明还定位不够准确,再往上一层走)

我们如果要获取简介内容,我们可以下图方式代码 获取子节点(记得find方法是子孙节点)

但上图也没抓取我们特别想要的信息呀,这时发现 我们所指定的解析底下有很多li标签 里标签底下又有很多内容,所以此时还得继续往下解析。

首先我们用children方法查找子节点,然后使用items方法来得到一个生成器,将数据遍历打印或者添加到列表中,方便数据存储和最终结果打印。
此时我们来获取一下小说的图片链接试试 利用attrs方法 来返回属性字典 进一步获取value值。

怎么来抓取解析节点 理清层级关系 利用好 F12来分析就好啦!!!
总结一下:
id 使用的是# class 使用的是英文句号 空格代表 层级关系
find()方法是遍历子孙节点
chlidren()方法是获取节点的子节点(看上面实例也支持往下继续选择节点)
parent()方法是获取节点的父节点
parents()方法是获取节点的所有父节点(下面实例从所有祖先节点中挑选出符合条件的节点)
parent = items.parents('.wrap')
print(parent)
siblings()方法是获取兄弟节点(下面实例从所有兄弟节点中挑选出符合条件的节点)
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.list .item-0.active')
print(li.siblings('.active'))
items()方法是用于遍历每一个节点结果
attr()方法是返回属性字典 进一步获取value值
text()方法是获取节点内部文本(Tips:当内容中前后出现\n 空格 可配合strip()来删除)
也可以百度学习下伪类选择器来获取节点数据,而且右键就能copy出表达式!!!

学习PyQuery库的更多相关文章
- MXNet 学习 (1) --- 最易上手的深度学习开源库 --- 安装及环境搭建
安装环境:Win 10 专业版 64位 + Visual Studio 2015 Community. 记录下自己在有GPU的环境下安装配置MXNet的过程.该过程直接使用MXNet release ...
- python爬虫从入门到放弃(七)之 PyQuery库的使用
PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严 ...
- 爬虫常用库之pyquery 库
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的.他的官方文档地址是:http://packages. ...
- 深度学习开源库tiny-dnn的使用(MNIST)
tiny-dnn是一个基于DNN的深度学习开源库,它的License是BSD 3-Clause.之前名字是tiny-cnn是基于CNN的,tiny-dnn与tiny-cnn相关又增加了些新层.此开源库 ...
- Python中PyQuery库的使用总结
介绍 pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,官方文档地址是:http://packages.python.org/pyquery/ pyquery 可让你用 ...
- Python爬虫-- PyQuery库
PyQuery库 PyQuery库也是一个非常强大又灵活的网页解析库,PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪 ...
- PYTHON 爬虫笔记六:PyQuery库基础用法
知识点一:PyQuery库详解及其基本使用 初始化 字符串初始化 html = ''' <div> <ul> <li class="item-0"&g ...
- AI炼丹 - 深度学习必备库 numpy
目录 深度学习必备库 - Numpy 1. 基础数据结构ndarray数组 1.1 为什么引入ndarray数组 1.2 如何创建ndarray数组 1.3 ndarray 数组的基本运算 1.4 n ...
- 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总
每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...
随机推荐
- 浅谈字符串哈希 By cellur925
前言 蒟蒻最近在复习字符串算法...但正如之前所说,我OI太菜被关起来了,本蒟蒻只能从最简单的哈希入手了TAT.而别的dalao都在学习AC自动机/后缀数组等高到不知哪里去的算法qwq. 基本思想 映 ...
- Contest Hunter 0103最短Hamilton路径 【状压dp】 By cellur925
题目传送门 Hamilton路径的定义:从0(起点)到n-1(终点)不重不漏地经过每个点恰好一次. 由于数据范围非常小,考虑状压.如NOIP2017宝藏一题,把状态压缩设为n个点是否已到达的二进制数. ...
- Oracle 正则化
摘抄自:http://www.cnblogs.com/scottckt/archive/2012/10/11/2719562.html ORACLE中的支持正则表达式的函数主要有下面四个: 1,REG ...
- AtCoder Grand Contest 016 C - +/- Rectangle
题目传送门:https://agc016.contest.atcoder.jp/tasks/agc016_c 题目大意: 给定整数\(H,W,h,w\),你需要判断是否存在满足如下条件的矩阵,如果存在 ...
- 第02课 操作系统及Linux 系统介绍
1.操作系统介绍 操作系统(Operating System,简称OS),是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是管 ...
- tsconfig.json No inputs were found in config file
Build:No inputs were found in config file '/tsconfig.json'. Specified 'include' paths were '["* ...
- Contextual Action bar(2) 简介,启动,各函数介绍
一.Context Action Bar简介 它是一个ActionBar,有各种操作项,但它不是始终显示的ActionBar,它需要上下文才显示.样式如下: 二.Context Action Bar的 ...
- Maven聚合模式
项目的打包类型:pom.jar.war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系.项目模块化可以将通用的部分抽离出来,方便重 ...
- hdu 2604 Queuing dp找规律 然后矩阵快速幂。坑!!
http://acm.hdu.edu.cn/showproblem.php?pid=2604 这题居然O(9 * L)的dp过不了,TLE, 更重要的是找出规律后,O(n)递推也过不了,TLE,一定 ...
- solr的多条件组合查询和solr的范围查询【转】
solr的多条件组合查询和solr的范围查询 版权声明:本文为博主原创文章,供大家参考,但不要抄袭哦! 存在问题:为了减轻数据库的访问压力,往往我们将必要的数据存储到solr中,并给部分字段建立索引, ...