0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python解析库的使用--PyQuery

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-22 16:07 次阅读

PyQuery介绍与安装

PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择。

PyQuery 是 Python 仿照 jQuery 的严格实现。

语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了。

官网地址:https://pyquery.readthedocs.io/en/latest/

  • PyQuery的安装
pip install pyquery
  • URL初始化:
# 推荐使用requests爬取信息
from pyquery import PyQuery as pq
import requests
res = requests.get("http://www.baidu.com")
res.encoding = "utf-8" # 因为原编码为ISO-8859-1
#print(res.text)
doc = pq(res.text)
print(doc("title"))

PyQuery的使用

首先创建一个html文件:my.html 用于测试pyquery的解析效果


我的常用链接

使用pyquery解析my.html


# 读取my.html的文件内容,并使用pyquery来查找节点
from pyquery import PyQuery as pq

doc = pq(filename='my.html',encoding="utf-8")

print(doc('title')) #通过html标签名获取元素节点
print(doc('#hid'))  #获取id属性值为hid的元素节点
print(doc('.bb'))  #获取class属性值为bb的元素节点
print(doc('title,h3')) #选择符组的使用

print(doc("ul li.shop a")) #关联选择符的使用

print(doc("a")) #获取所有a
print(doc("a:first")) #获取第一个a
print(doc("a:last")) #获取最后一个a
print(doc("a:lt(2)")) #获取前连个a
print(doc("a:eq(2)")) #获取索引位置2的a(第三个)

print(doc('a[href="http://www.sina.com"]')) #获取指定属性值的节点

print("="*60)
# 节点的二次筛选:

lilist = doc("ul li") #获取ul中所有的li
print(type(lilist)) #
print(lilist.find("a.bb")) #在结果的基础上再次查找
print(lilist.children("a.bb")) #在结果的基础上再次查找

print(doc("a.bb").parent()) #获取指定元素的直接父节点
#print(doc("a.bb").parents()) #获取指定元素的所有父节点
print(doc("a.bb").parent().siblings()) #获取兄弟节点

print("="*60)
# 遍历:

alist = doc("a")
for a in alist.items():
    print(a.attr.href)
    #print(a.attr('href')) #同上
    print(a.text())  #获取内容
    print(a.html()) 




审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 节点
    +关注

    关注

    0

    文章

    208

    浏览量

    24076
  • 编码
    +关注

    关注

    6

    文章

    835

    浏览量

    54452
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83441
收藏 人收藏

    评论

    相关推荐

    ArkTS语言基础类-解析

    多线程并发,支持Worker线程和宿主线程之间进行通信,开发者需要主动创建和关闭Worker线程。 提供常见的[容器类增、删、改、查]的能力。 提供XML、URL、URI构造和解析的能力。 XML
    发表于 02-20 16:44

    1000+常用Python库一览

    lxml,快速,易用、灵活的HTML和XML处理库,功能超强,在遇到有缺陷、不规范的xml时,Python自带的xml处理器可能无法解析。报错时,程序会尝试再用lxml的修复模式解析
    的头像 发表于 11-30 17:00 472次阅读

    python中如何交换两个数的值相加

    数的值,并对其应用进行详细解析。 一、变量交换原理解析 传统方式 在Python中,交换两个数的值通常可以使用一个临时变量进行操作。假设有变量a和b,要实现交换,可以通过如下代码实现: temp = a a = b b = te
    的头像 发表于 11-29 17:29 339次阅读

    Python2与Python3的差异

    Python2与Python3是两个不同的版本,它们在语法、功能和性能等方面存在一些差异。下面是对Python2和Python3的详尽、详实、细致的比较,分为以下几个方面: 语法差异
    的头像 发表于 11-23 16:48 321次阅读

    python写完程序之后怎么运行

    Python是一门简洁、易学的编程语言,被广泛应用于数据分析、人工智能等领域。在学习Python编程的过程中,了解程序的运行机制是至关重要的。本文将详尽解析Python程序的运行过程,
    的头像 发表于 11-22 11:10 644次阅读

    python怎么把for循环的值拿出来

    Python中可以使用for循环来遍历一个序列或者迭代器中的元素。当我们希望将for循环中的值取出来并进行其他操作时,我们可以使用一些方法和技巧来实现。 一、使用列表解析 列表解析是一种创建新列表
    的头像 发表于 11-22 09:54 1348次阅读

    如何应用Python解决5个常见运维问题?

    解析日志文件并提取有用信息是运维工程师经常要进行的任务之一。使用 Python 脚本可以方便地实现这一操作。 在 Python 中,可以使用第三方库 regex 来解析日志文件。reg
    发表于 11-02 10:06 153次阅读

    什么是pyquery?如何使用pyquery

    什么是pyquery pyquery是类似于jquery的网页解析工具,让你使用jquery的风格来遍历xml文档,它使用lxml操作html的xml文档,它的语法与jquery很像,和我们之前
    的头像 发表于 10-31 14:40 226次阅读
    什么是<b class='flag-5'>pyquery</b>?如何使用<b class='flag-5'>pyquery</b>

    K510能做哪些音频处理?支持了什么python音频处理

    麻烦问一下,K510 能做哪些音频处理?支持了什么python 音频处理?我们想用K510来做音频处理,比如GEQ,PEQ,降噪,效果器,混音等等。急盼大家回复
    发表于 09-14 07:32

    SQLite数据库与python的区别

    、数据科学等方面。SQLite数据库和Python之间有很多不同之处,下面将详细解析它们之间的区别。 1. 数据库类型 SQLite是一种关系型数据库管理系统(RDBMS),而Python是一种编程语言。
    的头像 发表于 08-28 16:41 525次阅读

    如何在biquads 1.0版中使用CMSIS-DSP的Python包装

    的参考文献的优化函数来实现。 流行的环境包括开放源码的Python、SciPy或MathWorks MatLab软件。 科学的环境和优化的函数之间总是有区别的。 这些差异的存在可
    发表于 08-28 06:30

    TSMaster小功能—Python小程序如何导入外部库

    今天给大家介绍TSMaster功能之Python小程序如何导入外部库。通过在TSMaster默认的解析器路径下导入外部库来介绍,以便我们去使用Python外部库。TSMaster默认Pytho
    的头像 发表于 08-14 10:06 666次阅读
    TSMaster小功能—<b class='flag-5'>Python</b>小程序如何导入外部库

    编译草图python选项错误怎么处理?

    到 influxdb,但无法编译和上传任何草图。我不断收到 python 选项错误。在 python 上执行 man 之后,我可以确认错误“-I”不是一个选项。看起来正确的选项是“-i”,所以小写而不是大写。我什至在
    发表于 06-02 06:37

    有Pico-iTX外形规格NXP® i.MX8M 系列 (ND108T) 的手册和Python吗?

    我为树莓编译了一个 python 脚本来管理带中断的 GPIO。 我必须在 NXP i.MX8M 上测试相同的功能。有 Pico-iTX 外形规格 NXP® i.MX8M 系列 (ND108T) 的手册和 Python 吗?还
    发表于 05-22 08:39

    网络工程师学Python之JSON数据交换格式解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript语法,但也可以被其他语言如Python解析和生成。
    的头像 发表于 04-21 16:53 1192次阅读