jsonpath提取王者全英雄名字

简介: jsonpath提取王者全英雄名字


image.png

文章目录


前言

在玩爬虫的时候,总会遇到一些无法通过xpath提取的数据,通常都会存放在JSON格式中,所我这学一下jsonpath。


JSON是什么

可以看看我这篇博客,不过有不全的地方请多多担待,提出来一起学习一起进步!

JSON学习笔记


jsonpath

jsonpath是对JSON格式提取文件的东西,看看这熟悉的path,有没有联想到xpath?差不多,都是用来提取数据的东西

  1. xpath是用于提取HTML和XML的
  2. jsonpath是用于提取JSON格式的


Python中的jsonpath

先安装jsonpath第三方库

pip install jsonpath -i https://pypi.doubanio.com/simple


jsonpath语法

符号 描述
$ 查询的根节点对象,用于表示一个json数据,可以是数组或对象
@ 过滤器(filter predicate)处理的当前节点对象
* 获取所有节点
. 获取子节点
递归搜索,筛选所有符合条件的节点
?() 过滤器表达式,筛选操作
[start:end] 数组片段,区间为[start,end),不包含end
[A]或[A,B] 迭代器下标,表示一个或多个数组下标


使用

我们的数据是从王者网站拿的——王者网站

大概就是张这个样子

image.png

然后我们开始联系jsonpath吧

import jsonpath  # 导入jsonpath包
import json  # 导入json包
import requests  # 导入爬虫包
with open("王者英雄.json",'wb') as f:
    f.write(requests.get('https://pvp.qq.com/web201605/js/herolist.json').content)
    # 将json文件保存到本地
with open('王者英雄.json', 'r', encoding="utf-8") as f:
    js = f.read()
    # 读取
c = json.loads(js) # 转成python数据
print(jsonpath.jsonpath(c, '$.*.cname'))  # 使用jsonpath将英雄名字取出来
'''
$.:根目录
*:根目录下所有节点
cname:所有cname元素的值
'''

运行结果:

image.png


结语

拜拜 学习如逆水行舟,不进则退,所以一定要在学习后多加练习~~~~~

那么今天就到这里了哦,( _ )/~~

image.png


目录
相关文章
|
1月前
|
JSON 前端开发 JavaScript
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(上)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(上)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(上)
|
1月前
|
存储 JSON NoSQL
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(下)
|
1月前
|
JSON JavaScript 前端开发
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(中)
解锁JSON的奇妙世界:从基础到高级应用,一文搞懂JSON的妙用(中)
|
5月前
|
JSON 前端开发 Java
教会你怎么返回json来完成需求
教会你怎么返回json来完成需求
58 0
|
XML JSON JavaScript
|
XML JSON 数据格式
记录python爬某文化交易遇到的问题xml转json读出单个数据
记录python爬某文化交易遇到的问题xml转json读出单个数据
记录python爬某文化交易遇到的问题xml转json读出单个数据
|
JSON JavaScript Java
json中斜杠引发的惨案
最近遇到一个问题,一个json语句中包含了"/",但是toString之后发现与原字符串不一样了!这里将我研究的整个过程记录一下。
378 0
|
前端开发 JavaScript 程序员
大前端快闪:package.json文件知多少?
打算用后端程序猿的视角记录一些{大前端}的知识快闪,也算是帮助读者构建完整的全栈技能体系。
|
资源调度 安全 前端开发
以水果和蔬菜为例,理解package-lock.json是您最好的朋友
  为什么要保留它们以及何时要抛弃它们?   以水果和蔬菜为例,理解package-lock.json是您最好的朋友   本文目录:   你是不是遇到和思考过下面的问题?将第三方包视为一等公民什么是 package lock 文件?水果和蔬菜的比喻包锁定文件使提交保持不变删除程序包锁定是否安全?总结你是不是遇到和思考过下面的问题?什么是package-lock.json(或yarn.lock)?我们为什么需要它?我的package-lock.json文件中有冲突我提交时会忽略它我要把它删掉
149 0
|
数据可视化 安全 大数据
WHY 怒敲JSON10000行代码
他制作出了用DataV平台GIS地图可视化组件,更直观的了解到城市空气质量对比、最“污”城市,最“小清新”城市等可视内容。
131 0
WHY 怒敲JSON10000行代码