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

    文章

    226

    浏览量

    25408
  • 编码
    +关注

    关注

    6

    文章

    1015

    浏览量

    56646
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89559
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    淘宝商品详情API接口技术解析与实战应用

    出发,系统解析淘宝商品详情API接口的调用机制、数据结构及典型应用场景,并附上基于Python的完整调用示例,助力开发者高效集成商品数据服务。 关键词 淘宝开放平台;商品详情API;RESTful接口;数据解析
    的头像 发表于 11-04 09:50 123次阅读

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
    的头像 发表于 11-03 09:15 320次阅读

    HTTP开发必备:核心与httpplus扩展应用示例全攻略

    HTTP开发的必备参考!本文汇总核心基础操作与httpplus扩展高级特性,通过示例解析,让你快速上手各类HTTP开发需求。
    的头像 发表于 09-20 15:19 3027次阅读
    HTTP开发必备:核心<b class='flag-5'>库</b>与httpplus扩展<b class='flag-5'>库</b>应用示例全攻略

    电磁环境数据管理系统平台软件解析

    电磁环境数据管理平台软件解析(精简版)
    的头像 发表于 09-15 21:00 123次阅读
    电磁环境数据<b class='flag-5'>库</b>管理系统平台软件<b class='flag-5'>解析</b>

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    数据数据恢复—服务器异常断电导致Oracle数据故障的数据恢复案例

    备份,仅有一些断断续续的归档日志。 Oracle数据恢复流程: 1、检测数据故障情况; 2、尝试挂起并修复数据; 3、解析数据
    的头像 发表于 07-24 11:12 435次阅读
    数据<b class='flag-5'>库</b>数据恢复—服务器异常断电导致Oracle数据<b class='flag-5'>库</b>故障的数据恢复案例

    linux虚拟环境中调用Linux 版matlab编译的python时出错

    matlab代码编译为CAO_pythonpython,其中cp_Main_python.m为入口文件,编译后生成的文件有mccExcludedFiles.log、setup.py
    发表于 07-18 10:40

    python入门圣经-高清电子书(建议下载)

    和Pygal 等强大的Python 和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容; 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据
    发表于 04-10 16:53

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    。RaspberryPiOS预装了Python3。干扰系统Python的安装可能会给你的操作系统带来问题。安装第三方Python时,请务必使用正确的包管理工具。在Lin
    的头像 发表于 03-25 09:34 627次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的和快速的开发周期,这使得它在某些嵌入式场景
    的头像 发表于 03-19 14:10 1185次阅读

    Python Connector for InterBase连接解决方案

    适用于 InterBase 的 Python 连接器 Python Connector for InterBase 是一种可靠的连接解决方案,用于从 Python 应用程序访问 InterBase
    的头像 发表于 01-22 14:34 705次阅读

    使用Python实现xgboost教程

    装: bash复制代码conda install -c conda-forge xgboost 2. 导入必要的 在你的Python脚本或Jupyter Notebook中,导入必要的
    的头像 发表于 01-19 11:21 2207次阅读

    适用于MySQL和MariaDB的Python连接器:可靠的MySQL数据连接器和数据

    和 MariaDB 数据服务器以及托管数据服务,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全实现了 Python DB API 2.0 规范,并作为 Windows、macOS
    的头像 发表于 01-17 12:18 843次阅读
    适用于MySQL和MariaDB的<b class='flag-5'>Python</b>连接器:可靠的MySQL数据连接器和数据<b class='flag-5'>库</b>

    适用于Oracle的Python连接器:可访问托管以及非托管的数据

    适用于 Oracle 的 Python 连接器 适用于 Oracle 的 Python 连接器是一种可靠的连接解决方案,用于从 Python 应用程序访问 Oracle 数据服务器和
    的头像 发表于 01-14 10:30 737次阅读

    数据事件触发的设置和应用

    数据无论对于生产管理还是很多的实际应用都非常重要。小编这次聊一下数据事件触发的应用。示例使用了postgresql和Python
    的头像 发表于 12-13 15:14 1016次阅读