python网络爬虫精解之pyquery的使用说明

目录
  • 一、pyquery的介绍
  • 二、pyquery的使用
    • 1、初始化工作
      • 字符串
      • URL
      • 文件初始化
    • 2、查找节点
      • (1)查找子节点
      • (2)匹配父节点
      • (3)匹配兄弟节点
    • 3、遍历
    • 4、获取信息
      • (1)获取属性
      • (2)获取文本
    • 5、节点操作
      • (1)为某个节点添加或删除一个class
      • (2)attr、text、html
      • (3)remove
    • 6、伪类选择器

pyquery的使用

一、pyquery的介绍

使用pyquery需要在Web和了解jQuery的基础上,使用该CSS选择器。

二、pyquery的使用

1、初始化工作

使用pyquery初始化的方式有很多,传入的参数可以是字符串,也可以是URL和文件名,下面将一一介绍初始化方法。

字符串

html = '''
<html>

<head>
  <meta charset="utf-8">
  <title>test02.html</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  <div id="container">
    <iframe id="iframe" sandbox="allow-scripts" src="/files/%E7%88%AC%E8%99%AB%E5%86%99%E4%BD%9C%E4%BB%A3%E7%A0%81%E6%B5%8B%E8%AF%95/test02.html"></iframe>
  </div>
</body>

</html>
'''
from pyquery import PyQuery as pq
doc = pq(html)
print(doc('title'))

【运行结果】

<title>test02.html</title>

URL

URL以CSDN首页地址为例:

from pyquery import PyQuery as pq
doc = pq(url = 'https://www.csdn.net/')
print(doc('title'))

【运行结果】

<title>CSDN - 专业开发者社区</title>

文件初始化

我们将以下字符串保存为一个HTML文件,通过文件的形式进行初始化。

【test02.html】

<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
  </book>

  <book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
  </book>
</bookstore>
from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
print(doc('title'))

【运行结果】

<title lang="eng">Harry Potter</title>
<title lang="eng">Learning XML</title>

2、查找节点

(1)查找子节点

查找子节点时需要用到find()方法,此时传入的参数是CSS选择器。

from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
item = doc('book')
print(item)
lis1 = item.find('title')
lis2 = item.find('price')
print(lis1)
print(lis2)

【运行结果】

<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>

<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>

<title lang="eng">Harry Potter</title>
<title lang="eng">Learning XML</title>

<price>29.99</price>
<price>39.95</price>
可以看到,我们首先匹配的是book节点,然后匹配book节点下的子节点title和price。

其实使用find方法匹配的是所有的子孙节点,如果只是单纯匹配子节点可以使用children方法。

(2)匹配父节点

使用parent()方法,如果是要匹配祖先节点,则需要使用parents()方法。

(3)匹配兄弟节点

可以使用siblings()方法。

3、遍历

对于获取到的内容如果是单个节点,则可以直接转换为字符串类型,而对于获取到多个节点,因其类型为PyQuery类型,需要对获取到的数据进行遍历,这是需要调用items()方法。

from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
items = doc('title').items()
print(items)
print(type(items))
for i in items:
    print(type(i))
    print(i)

【运行结果】

<generator object PyQuery.items at 0x000002B79E13EF48>
<class 'generator'>
<class 'pyquery.pyquery.PyQuery'>
<title lang="eng">Harry Potter</title>

<class 'pyquery.pyquery.PyQuery'>
<title lang="eng">Learning XML</title>

4、获取信息

(1)获取属性

使用attr()方法

from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in items.items():
    print(i.attr('lang'))

【运行结果】

eng
eng

遍历获取到的数据,就能获得所有title节点的land属性值。

(2)获取文本

使用text()方法

from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in items.items():
    print(i.text())

【运行结果】

Harry Potter
Learning XML

同样是遍历,获取到每一个title节点的文本值。

5、节点操作

(1)为某个节点添加或删除一个class

调用的方法为addClass和removeClass

from pyquery import PyQuery as pq
doc = pq(filename = 'test02.html')
items = doc('title')
for i in items.items():
    print(i)
    i.addClass('book01')
    print(i)
    i.removeClass('book01')
    print(i)

【运行结果】

<title lang="eng">Harry Potter</title>

<title lang="eng" class="book01">Harry Potter</title>

<title lang="eng" class="">Harry Potter</title>

<title lang="eng">Learning XML</title>

<title lang="eng" class="book01">Learning XML</title>

<title lang="eng" class="">Learning XML</title>

可以看到,首先是打印最初始的title节点,加上class属性后再次打印,去掉class属性后再次打印。

(2)attr、text、html

attr:用来改变属性值;

text:用来改变文本值;

html:用来改变节点值;

(3)remove

移除不需要的节点值,将整个节点移除。

6、伪类选择器

支持多种伪类选择器,例如选择第一个节点、最后一个节点、奇数节点、偶数节点、以及包含指定文本的节点等。

到此这篇关于python网络爬虫精解之pyquery的使用说明的文章就介绍到这了,更多相关python pyquery 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python中类似于jquery的pyquery库用法分析

    本文实例讲述了Python中类似于jquery的pyquery库用法.分享给大家供大家参考,具体如下: pyquery:一个类似于jquery的Python库 pyquery可以使你在xml文档上做jquery查询,它的API尽可能地类似于jquery.pyquery使用lxml执行快速的xml和html操作. 这并非(至少目前还不是)一个生成javascript代码或者与javascript代码做交互的库.pyquery的作者只是由于非常喜欢jquery的API因而将其用python实现. 该

  • python爬虫学习笔记之pyquery模块基本用法详解

    本文实例讲述了python爬虫学习笔记之pyquery模块基本用法.分享给大家供大家参考,具体如下: 相关内容: pyquery的介绍 pyquery的使用 安装模块 导入模块 解析对象初始化 css选择器 在选定元素之后的元素再选取 元素的文本.属性等内容的获取 pyquery执行DOM操作.css操作 Dom操作 CSS操作 一个利用pyquery爬取豆瓣新书的例子 首发时间:2018-03-09 21:26 pyquery的介绍 pyquery允许对xml.html文档进行jQuery查询

  • python中PyQuery库用法分享

    PyQuery库就是python中的一个解析库.作用十分强大,使用上也是相当的灵活,能够实现初始化字符串.初始化 HTML 文件.初始化请求响应等多种场景,另外,本身中的CSS选择器,也是经常被大家使用的对象,结合以上的大致内容总结,接下来,我们一起详细的了解使用内容. 安装: >>> pip3 install pyquery 引用方法: from pyquery import PyQuery as pq CSS选择器: from pyquery import PyQuery as pq

  • Python爬虫PyQuery库基本用法入门教程

    本文实例讲述了Python爬虫PyQuery库基本用法.分享给大家供大家参考,具体如下: PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了. 官网地址:http://pyquery.readthedocs.io/en/latest/ jQuery参考文档: http:

  • python爬虫开发之PyQuery模块详细使用方法与实例全解

    python爬虫模块PyQuery简介 PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择,PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了. 官网地址:http://pyquery.readthedocs.io/en/latest/ jQuery参考文档: http://jquery.cuishifeng.cn/ P

  • python网络爬虫精解之pyquery的使用说明

    目录 一.pyquery的介绍 二.pyquery的使用 1.初始化工作 字符串 URL 文件初始化 2.查找节点 (1)查找子节点 (2)匹配父节点 (3)匹配兄弟节点 3.遍历 4.获取信息 (1)获取属性 (2)获取文本 5.节点操作 (1)为某个节点添加或删除一个class (2)attr.text.html (3)remove 6.伪类选择器 pyquery的使用 一.pyquery的介绍 使用pyquery需要在Web和了解jQuery的基础上,使用该CSS选择器. 二.pyquer

  • python网络爬虫精解之正则表达式的使用说明

    目录 一.常见的匹配规则 二.常见的匹配方法 1.match() 2.search() 3.findall() 4.sub() 5.compile() 一.常见的匹配规则 二.常见的匹配方法 1.match() match()方法从字符串的起始位置开始匹配,该方法有两个参数,第一个是正则表达式,第二个是需要匹配的字符串: re.match(正则表达式,字符串) 如果该方法匹配成功,返回的是SRE_Match对象,如果未匹配到,则返回None. 返回成功后有两个方法,group()方法用来查看匹配

  • python网络爬虫精解之XPath的使用说明

    目录 一.XPath的介绍 二.XPath使用 1.选取所有节点 2.获取子节点 3.获取父节点 4.属性匹配 5.文本获取 6.属性获取 7.属性多值匹配 8.多属性匹配 9.按序选择 10.节点轴选择 XPath的使用 一.XPath的介绍 XPath的几个常用规则: 表达式 描述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 - 选取当前节点的父节点 @ 选取属性 二.XPath使用 1.选取所有节点 test01.

  • python网络爬虫精解之Beautiful Soup的使用说明

    目录 一.Beautiful Soup的介绍 二.Beautiful Soup的使用 1.节点选择器 2.提取信息 3.关联选择 4.方法选择器 5.CSS选择器 一.Beautiful Soup的介绍 Beautiful Soup是一个强大的解析工具,它借助网页结构和属性等特性来解析网页. 它提供一些函数来处理导航.搜索.修改分析树等功能,Beautiful Soup不需要考虑文档的编码格式.Beautiful Soup在解析时实际上需要依赖解析器,常用的解析器是lxml. 二.Beautif

  • Python网络爬虫中的同步与异步示例详解

    一.同步与异步 #同步编程(同一时间只能做一件事,做完了才能做下一件事情) <-a_url-><-b_url-><-c_url-> #异步编程 (可以近似的理解成同一时间有多个事情在做,但有先后) <-a_url-> <-b_url-> <-c_url-> <-d_url-> <-e_url-> <-f_url-> <-g_url-> <-h_url-> <--i_ur

  • 详解Python网络爬虫功能的基本写法

    网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 1. 网络爬虫的定义 网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来.这样看来,网络爬虫就是一个爬行程序,一个抓取网页的

  • 详解如何使用Python网络爬虫获取招聘信息

    目录 前言 项目目标 项目准备 反爬措施 项目实现 效果展示 小结 前言 现在在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息.可是招聘信息有一些是错综复杂的.而且不能把全部的信息全部罗列出来,以外卖的58招聘网站来看,资料整理的不清晰. 项目目标 获取招聘信息,并批量把地点. 公司名.工资 .下载保存在txt文档. 项目准备 软件:PyCharm 需要的库:requests.lxml.fake_useragent 网站如下: https://gz.58.com/job/

  • python网络爬虫学习笔记(1)

    本文实例为大家分享了python网络爬虫的笔记,供大家参考,具体内容如下 (一)   三种网页抓取方法 1. 正则表达式: 模块使用C语言编写,速度快,但是很脆弱,可能网页更新后就不能用了. 2.Beautiful Soup 模块使用Python编写,速度慢. 安装: pip install beautifulsoup4 3. Lxml 模块使用C语言编写,即快速又健壮,通常应该是最好的选择. (二) Lxml安装 pip install lxml 如果使用lxml的css选择器,还要安装下面的

  • python网络爬虫实现发送短信验证码的方法

    前言:今天要总结的是如何用程序来实现短信发送功能.但是呢,可能需要我们调用一些api接口,我会详细介绍.都是自己学到的,害怕忘记,所以要总结一下,让写博客成为一种坚持的信仰.废话不多说,我们开始吧! 网络爬虫实现发送短信验证码 在实现我们目标的功能之前,我们要有自己的思路,否则你没有方向,又如何实现自己的代码功能呢? 我们要发送短信,那么我们其实是需要分析的.我们可以去分析一个可以发送短信的网站页面. 我们来到这里如下: 可以看到这是一个注册界面,我们在注册时会被要求需要填写手机号码的·,其实还

  • Python网络编程详解

    1.服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的"服务".它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求. 2.客户端/服务器架构既可以应用于计算机硬件,也可以应用于计算机软件. 3.在服务器响应客户端之前,首先会创建一个通信节点,它能够使服务器监听请求. 一.套接字:通信端点 1.套接字 套接字是计算机网络数据结构,它体现了上节中所描述的"通信端点"的概念.在任何类型的通信开始之前,网络应用程序必须创建套接字

随机推荐