Python爬蟲之路-jsonpath模組
資料提取-jsonpath模組
知識點
- 瞭解 jsonpath模組的使用場景
- 掌握 jsonpath模組的使用
1. jsonpath模組的使用場景
如果有一個多層巢狀的複雜字典,想要根據key和下標來批量提取value,這是比較困難的。jsonpath模組就能解決這個痛點,接下來我們就來學習jsonpath模組
jsonpath可以按照key對python字典進行批量資料提取
知識點:瞭解 jsonpath模組的使用場景
2. jsonpath模組的使用方法
2.1 jsonpath模組的安裝
jsonpath是第三方模組,需要額外安裝
pip install jsonpath
2.2 jsonpath模組提取資料的方法
from jsonpath import jsonpath
ret = jsonpath(a, 'jsonpath語法規則字串')
2.3 jsonpath語法規則
2.4 jsonpath使用示例
book_dict = {
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
from jsonpath import jsonpath
print(jsonpath(book_dict, '$..author')) # 如果取不到將返回False # 返回列表,如果取不到將返回False
3. jsonpath練習
我們以拉勾網城市JSON檔案 http://www.lagou.com/lbs/getAllCitySearchLabels.json 為例,獲取所有城市的名字的列表,並寫入檔案。
參考程式碼:
import requests
import jsonpath
import json
# 獲取拉勾網城市json字串
url = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'
headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"}
response =requests.get(url, headers=headers)
html_str = response.content.decode()
# 把json格式字串轉換成python物件
jsonobj = json.loads(html_str)
# 從根節點開始,獲取所有key為name的值
citylist = jsonpath.jsonpath(jsonobj,'$..name')
# 寫入檔案
with open('city_name.txt','w') as f:
content = json.dumps(citylist, ensure_ascii=False)
f.write(content)
知識點:掌握 jsonpath模組的使用
相關文章
- Python爬蟲之路-lxml模組Python爬蟲XML
- python爬蟲requests模組Python爬蟲
- python爬蟲需要什麼模組Python爬蟲
- Python爬蟲教程-09-error 模組Python爬蟲Error
- Python爬蟲:流程框架和常用模組Python爬蟲框架
- 爬蟲——Requests模組爬蟲
- 爬蟲-Requests模組爬蟲
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- Python爬蟲之路-chrome在爬蟲中的使用Python爬蟲Chrome
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- Python中爬蟲框架或模組的區別!Python爬蟲框架
- Python中爬蟲框架或模組的區別Python爬蟲框架
- Python爬蟲之路-爬蟲基礎知識(理論)Python爬蟲
- Python爬蟲之路-JS的解析Python爬蟲JS
- python爬蟲:爬蟲的簡單介紹及requests模組的簡單使用Python爬蟲
- 爬蟲-urllib模組的使用爬蟲
- python爬蟲—基本的模組,你一定要懂!!Python爬蟲
- Python中爬蟲模組有哪些?優缺點介紹!Python爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- Python案例學習——模組和包、爬蟲的基礎概念Python爬蟲
- 爬蟲 | 非同步請求aiohttp模組爬蟲非同步AIHTTP
- 爬蟲-urllib3模組的使用爬蟲
- python爬蟲系列(4.5-使用urllib模組方式下載圖片)Python爬蟲
- 為爬蟲框架構建Selenium模組、DSL模組(Kotlin實現)爬蟲框架架構Kotlin
- Python 爬蟲從入門到進階之路(十)Python爬蟲
- Python 爬蟲從入門到進階之路(十五)Python爬蟲
- Python 爬蟲從入門到進階之路(九)Python爬蟲
- Python 爬蟲從入門到進階之路(十二)Python爬蟲
- Python 爬蟲從入門到進階之路(十七)Python爬蟲
- Python 爬蟲從入門到進階之路(二)Python爬蟲
- Python 爬蟲從入門到進階之路(十一)Python爬蟲
- Python 爬蟲從入門到進階之路(六)Python爬蟲
- Python 爬蟲從入門到進階之路(八)Python爬蟲
- Python 爬蟲從入門到進階之路(七)Python爬蟲
- Python 爬蟲從入門到進階之路(十八)Python爬蟲
- Python 爬蟲從入門到進階之路(十六)Python爬蟲
- Python 爬蟲從入門到進階之路(三)Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站