
文章目錄
- 前言
- JSON是什么
- jsonpath
- Python中的jsonpath
- jsonpath語法
- 使用
- 結語
前言
在玩爬蟲的時候,總會遇到一些無法通過xpath提取的資料,通常都會存放在JSON格式中,所我這學一下jsonpath,
JSON是什么
可以看看我這篇博客,不過有不全的地方請多多擔待,提出來一起學習一起進步!
JSON學習筆記
jsonpath
jsonpath是對JSON格式提取檔案的東西,看看這熟悉的path,有沒有聯想到xpath?差不多,都是用來提取資料的東西
- xpath是用于提取HTML和XML的
- 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] | 迭代器下標,表示一個或多個陣列下標 |
使用
我們的資料是從王者網站拿的——王者網站
大概就是張這個樣子

然后我們開始聯系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(js, '$.*.cname')) # 使用jsonpath將英雄名字取出來
'''
$.:根目錄
*:根目錄下所有節點
cname:所有cname元素的值
'''
運行結果:

結語
拜拜 學習如逆水行舟,不進則退,所以一定要在學習后多加練習~~~~~
那么今天就到這里了哦,( _ )/~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280367.html
標籤:python
