返回顶部
首页 > 资讯 > 后端开发 > Python >Python中PyQuery如何使用
  • 919
分享到

Python中PyQuery如何使用

2023-06-17 04:06:26 919人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章给大家分享的是有关python中PyQuery如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安装pip install pyquery初始化

本篇文章给大家分享的是有关python中PyQuery如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

安装

pip install pyquery

初始化

在这里介绍四种初始化方式。

(1)直接字符串

from pyquery import PyQuery as pq  doc = pq("<html></html>")

pq 参数可以直接传入 HTML 代码,doc 现在就相当于 Jquery 里面的 $ 符号了。

(2)lxml.etree

from lxml import etree  doc = pq(etree.fromstring("<html></html>"))

可以首先用 lxml 的 etree 处理一下代码,这样如果你的 HTML 代码出现一些不完整或者疏漏,都会自动转化为完整清晰结构的  HTML代码。

(3)直接传URL

from pyquery import PyQuery as pq  doc = pq('Http://www.baidu.com')

这里就像直接请求了一个网页一样,类似用 urllib2 来直接请求这个链接,得到 HTML 代码。

(4)传文件

from pyquery import PyQuery as pq  doc = pq(filename='hello.html')

可以直接传某个路径的文件名。

快速体验

现在我们以本地文件为例,传入一个名字为 hello.html 的文件,文件内容为

<div>      <ul>           <li class="item-0">first item</li>           <li class="item-1"><a href="link2.html">second item</a></li>           <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>           <li class="item-1 active"><a href="link4.html">fourth item</a></li>           <li class="item-0"><a href="link5.html">fifth item</a></li>       </ul>  </div>

编写如下程序

from pyquery import PyQuery as pq  doc = pq(filename='hello.html')  print doc.html()  print type(doc)  li = doc('li')  print type(li)  print li.text()

运行结果

<ul>           <li class="item-0">first item</li>           <li class="item-1"><a href="link2.html">second item</a></li>           <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>           <li class="item-1 active"><a href="link4.html">fourth item</a></li>           <li class="item-0"><a href="link5.html">fifth item</a></li>       </ul>  <class 'pyquery.pyquery.PyQuery'>  <class 'pyquery.pyquery.PyQuery'>  first item second item third item fourth item fifth item

看,回忆一下 jQuery 的语法,是不是运行结果都是一样的呢?

在这里我们注意到了一点,PyQuery 初始化之后,返回类型是 PyQuery,利用了选择器筛选一次之后,返回结果的类型依然还是 PyQuery,这简直和  jQuery 如出一辙,不能更赞!然而想一下 BeautifulSoup 和 XPath 返回的是什么?列表!一种不能再进行二次筛选(在这里指依然利用  BeautifulSoup 或者 XPath 语法)的对象!

然而比比 PyQuery,哦我简直太爱它了!

属性操作

你可以完全按照 jQuery 的语法来进行 PyQuery 的操作。

from pyquery import PyQuery as pq     p = pq('<p id="hello" class="hello"></p>')('p')  print p.attr("id")  print p.attr("id", "plop")  print p.attr("id", "hello")

运行结果

hello  <p id="plop" class="hello"/>  <p id="hello" class="hello"/>

再来一发

from pyquery import PyQuery as pq     p = pq('<p id="hello" class="hello"></p>')('p')  print p.addClass('beauty')  print p.removeClass('hello')  print p.CSS('font-size', '16px')  print p.css({'background-color': 'yellow'})

运行结果

<p id="hello" class="hello beauty"/>  <p id="hello" class="beauty"/>  <p id="hello" class="beauty" style="font-size: 16px"/>  <p id="hello" class="beauty" style="font-size: 16px; background-color: yellow"/>

依旧是那么优雅与自信!

在这里我们发现了,这是一连串的操作,而 p 是一直在原来的结果上变化的。

因此执行上述操作之后,p 本身也发生了变化。

DOM操作

同样的原汁原味的 jQuery 语法

from pyquery import PyQuery as pq     p = pq('<p id="hello" class="hello"></p>')('p')  print p.append(' check out <a href="http://reddit.com/r/Python"><span>reddit</span></a>')  print p.prepend('Oh yes!')  d = pq('<div class="wrap"><div id="test"><a href="http://cuiqinGCai.com">Germy</a></div></div>')  p.prependTo(d('#test'))  print p  print d  d.empty()  print d

运行结果

<p id="hello" class="hello"> check out <a href="http://reddit.com/r/python"><span>reddit</span></a></p>  <p id="hello" class="hello">Oh yes! check out <a href="http://reddit.com/r/python"><span>reddit</span></a></p>  <p id="hello" class="hello">Oh yes! check out <a href="http://reddit.com/r/python"><span>reddit</span></a></p>  <div class="wrap"><div id="test"><p id="hello" class="hello">Oh yes! check out <a href="http://reddit.com/r/python"><span>reddit</span></a></p><a href="http://cuiqingcai.com">Germy</a></div></div>  <div class="wrap"/>

这不需要多解释了吧。

DOM 操作也是与 jQuery 如出一辙。

遍历

遍历用到 items 方法返回对象列表,或者用 lambda

from pyquery import PyQuery as pq  doc = pq(filename='hello.html')  lis = doc('li')  for li in lis.items():      print li.html()     print lis.each(lambda e: e)

运行结果

first item  <a href="link2.html">second item</a>  <a href="link3.html"><span class="bold">third item</span></a>  <a href="link4.html">fourth item</a>  <a href="link5.html">fifth item</a>  <li class="item-0">first item</li>  <li class="item-1"><a href="link2.html">second item</a></li>  <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>  <li class="item-1 active"><a href="link4.html">fourth item</a></li>  <li class="item-0"><a href="link5.html">fifth item</a></li>

不过最常用的还是 items 方法

网页请求

PyQuery 本身还有网页请求功能,而且会把请求下来的网页代码转为 PyQuery 对象。

from pyquery import PyQuery as pq  print pq('http://cuiqingcai.com/', headers={'user-agent': 'pyquery'})  print pq('http://httpbin.org/post', {'foo': 'bar'}, method='post', verify=True)

以上就是Python中PyQuery如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网Python频道。

--结束END--

本文标题: Python中PyQuery如何使用

本文链接: https://lsjlt.com/news/287045.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中PyQuery如何使用
    本篇文章给大家分享的是有关Python中PyQuery如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安装pip install pyquery初始化...
    99+
    2023-06-17
  • python网络爬虫精解之pyquery的使用说明
    目录一、pyquery的介绍二、pyquery的使用1、初始化工作字符串URL文件初始化2、查找节点(1)查找子节点(2)匹配父节点(3)匹配兄弟节点3、遍历4、获取信息(1)获取属...
    99+
    2024-04-02
  • Python爬虫辅助利器PyQuery模块的安装使用攻略
    Windows下的安装: 下载地址:https://pypi.python.org/pypi/pyquery/#downloads 下载后安装: C:Python27>easy_install ...
    99+
    2022-06-04
    爬虫 利器 模块
  • python中如何使用中文
    小编给大家分享一下python中如何使用中文,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用中文(以及其它非ASCII编码)在...
    99+
    2024-04-02
  • python中如何使用defaultdict
    小编给大家分享一下python中如何使用defaultdict,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开...
    99+
    2023-06-14
  • Python中Condition如何使用
    Python中Condition如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Condition 算是 Lock 和 Event 的杂交版本,除了作为 ...
    99+
    2023-06-17
  • Python中Library如何使用
    Python中Library如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 Thread我们可以选择继承 Thread 来实现自己的线程类,或者直接像 ...
    99+
    2023-06-17
  • Python中stuct_time如何使用
    本篇文章给大家分享的是有关Python中stuct_time如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、Python stuct_time中模块使用整理提供了各种...
    99+
    2023-06-17
  • Python 中Sympy如何使用
    Python 中Sympy如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、表达式与表达式求值:#--------多项式求解--------#定义变量x=sympy.S...
    99+
    2023-06-20
  • python中类如何使用
    这期内容当中小编将会给大家带来有关python中类如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、类的成员类的成员包括:属性和方法。属性可以分为:静态属性和实例属性方法可以分为:普通方法、类方法...
    99+
    2023-06-15
  • Python中TensorFlow如何使用
    这期内容当中小编将会给大家带来有关Python中TensorFlow如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。TensorFlow 是如何运作的呢 它的整个解决方案是基于张量进行的,张量是 T...
    99+
    2023-06-17
  • Python中Sqlite3如何使用
    今天就跟大家聊聊有关Python中Sqlite3如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 使用大量操作如果你需要在数据库中一次性插入很多行,那么你真不应该使用 ex...
    99+
    2023-06-17
  • Python中collections.Counter()如何使用
    今天就跟大家聊聊有关Python中collections.Counter()如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Counter类Counter类的目的是用来跟踪值出...
    99+
    2023-06-20
  • Python中sys.arg如何使用
    这篇文章将为大家详细讲解有关Python中sys.arg如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用sys.argv[]的一简单实例,import sys,os&nb...
    99+
    2023-06-17
  • Python中Stackless如何使用
    本篇文章为大家展示了Python中Stackless如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用Stackless Python的内置模块stackless也可以完成多线程编程,使用起...
    99+
    2023-06-17
  • Python中Mock如何使用
    Python中Mock如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1. 前言微服务架构下,由于各类服务开发进度的不一致,导致联调工作经常会存在不确定性...
    99+
    2023-06-15
  • Python中musicpy如何使用
    Python中musicpy如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装首先在musicpy文件夹里打开cmd, 跑一下pip install -...
    99+
    2023-06-15
  • Python中QSlider如何使用
    这篇文章给大家介绍Python中QSlider如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Qslider控件控件介绍和使用qslider解释为滑块控件,用于方便左右滑动。往往这类滑动更多用于屏幕可以触碰的...
    99+
    2023-06-20
  • python中assert如何使用
    在Python中,assert语句用于检查一个条件是否为真。如果条件为假,assert语句将引发一个AssertionError异常...
    99+
    2023-09-28
    python
  • Python中enum如何使用
    这篇文章主要介绍“Python中enum如何使用”,在日常操作中,相信很多人在Python中enum如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中enum如何使用”的疑惑有所帮助!接下来...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作