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文章
230浏览量
25665 -
编码
+关注
关注
6文章
1040浏览量
57133 -
python
+关注
关注
58文章
4885浏览量
90302
发布评论请先 登录
相关推荐
热点推荐
RK3576 单板机 C/Python/MQTT 应用开发手册(二)
本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN/ 串口)、Python 开发及 MQTT 通信案例。提供完整编译命令、代码解析与实测
RK3576 单板机 C/Python/MQTT 应用开发手册(一)
本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN/ 串口)、Python 开发及 MQTT 通信案例。提供完整编译命令、代码解析与实测
[VirtualLab] 使用Python运行VirtualLab Fusion光学仿真
摘要
VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个用例介绍了一种使用路径变量和Visual Studio代码将Python连接到VirtualLab
发表于 03-31 09:39
如何使用 Python 将 I2C LCD 与 VIsionFive 一起使用?
以使用新的 VisionFive.gpio 库。
让我们连接 LCD 来监控事物 By Hamzah。
如何使用 Python 将 I2C LCD 与 VIsionFive 一起使用:I2c LCD 是当今非常
发表于 03-30 06:52
强强联合:imc FAMOS内嵌Python接口,提高分析效率!
德国知名车厂工程师首选将Python和imcFAMOS结合起来用于分析测试和测量数据——这是否有意义?事实上这非常有意义。Python和imcFAMOS可以很好地相互补充。Python作为一种编程
如何在 Vision Five 2 上安装 python 库?
这可能是一个完全愚蠢的问题,但我如何在 Vision Five 2 上安装 python 库。
使用该命令后,它给了我这个错误。
默认为用户安装,因为普通站点包不可写
错误:找不到满足要求
发表于 03-06 07:51
无法去除 Python VisionFive.i2c 库的终端输出?
烧的官方最新八月份的 debian 12 的系统。
根据这个案例安装好了 python 环境和 VisionFive 库。
执行下面这条代码:
import VisionFive.i2c
发表于 02-25 06:13
1688 商品详情 API 调用与数据解析 Python 实战
你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
cJSON库是什么?
cJSON库是什么?cJSON是一个轻量级的json解析库。使用起来非常简单,整个库非常地简洁,核心功能的实现都在cJSON.c文件,非常适合阅读源代码来学习C语言。最近读完这个
发表于 01-29 07:13
Python调用API教程
两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests库发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
termux如何搭建python游戏
termux如何搭建python游戏
Termux搭建Python游戏开发环境的完整指南
一、Termux基础环境准备
Termux是一款无需root即可在安卓设备上运行的Linux终端
发表于 08-29 07:06
数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例
备份,仅有一些断断续续的归档日志。
Oracle数据库恢复流程:
1、检测数据库故障情况;
2、尝试挂起并修复数据库;
3、解析数据库
linux虚拟环境中调用Linux 版matlab编译的python库时出错
matlab代码编译为CAO_python的python库,其中cp_Main_python.m为入口文件,编译后生成的文件有mccExcludedFiles.log、setup.py
发表于 07-18 10:40
python解析库的使用--PyQuery
评论