python--爬虫之JSON于JsonPath
JSON
json的引入
在python中json作为一个内建库不需要额外安装,只需要使用import json
执行引入
json模块的功能
在python中json模块提供了四个功能:dumps
、dump
、loads
,load
- json.loads()
将json格式字符串编码转换为python对象。 - json.dumps()
把一个Python对象编码转换成Json字符串,json.dumps() 序列化时默认使用的ascii编码,如果想获取utf-8格式可以使用json.dumps(str, ensure_ascii=False)
- json.dump()
将Python内置类型序列化为json对象后写入文件json.dump(list, open("list.json","w"), ensure_ascii=False)
- json.load()
读取文件中json形式的字符串元素 转化成python类型json.load(open("list.json"))
JsonPath
JsonPath的引入
首先使用pip安装pip install jsonpath
,然后引入import jsonpath
JsonPath的使用
表达式 | 描述 |
---|---|
$ | 根节点 |
@ | 现行节点 |
.or[] | 取子节点 |
.. | 不管位置,选择所有符合条件的对象 |
* | 匹配所有元素节点 |
[] | 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等) |
[,] | 支持迭代器中做多选。 |
?() | 支持过滤操作. |
() | 支持表达式计算 |
实例
from urllib.request import *
import jsonpath
import json
url = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36"}
request = Request(url, headers=header)
response = urlopen(request)
html = response.read()
obj = json.loads(html)
cityList = jsonpath.jsonpath(obj, '$..name')
print(cityList)