数据提取-

1.Python中的json模块

  • json.loads()

把json格式的字符串解码转换为Python对象

  • json.dumps()

把Python对象编码转换为json字符串

  • json.dump()

把Python内置类型转换为json对象后写入文件

  • json.load()

读取文件中的json形式的字符串元素转换为Python类型

import json
# 注释后面是输出结果
str='{"name":"神偷奶爸"}'
print(type(str),":",str)	#<class 'str'> : {"name":"神偷奶爸"}
obj=json.loads(str)
print(type(obj),":",obj)	#<class 'dict'> : {'name': '神偷奶爸'}
str2=json.dumps(obj,ensure_ascii=False)
print(type(str2),":",str2)	#<class 'str'> : {"name":"神偷奶爸"}
json.dump(obj,open('movie.txt','w',encoding='utf-8'),ensure_ascii=False)
obj3=json.load(open('movie.txt', 'r', encoding='utf-8'))
print(type(obj3), ":", obj3)	#<class 'dict'> : {'name': '神偷奶爸'}

2. jsonpath

官方文档:http://goessner.net/articles/JsonPath

2.1 安装

pip install jsonpath

2.2 jsonpath与xpath的对比

数据提取-

import json
from random import choice
import requests
from jsonpath import jsonpath
user_agents=[
    "User-Agent:Mozilla/5.0(Windows;U;WindowsNT6.1;en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50",
    "User-Agent:Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
]
headers={
    "User-Agent":choice(user_agents)
}
url="http://www.lagou.com/lbs/getAllCitySearchLabels.json"
response=requests.get(url,headers)
names=jsonpath(json.loads(response.text),'$..name')#核心代码
print(names)

结果:
数据提取-