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)
python--爬虫之JSON于JsonPath的更多相关文章
- python爬虫requests json与字典对象互相转换
import requests import json ''' json.loads(json_str) json字符串转换成字典 json.dumps(dict) 字典转换成json字符串 ''' ...
- Python爬虫开发【第1篇】【Json与JsonPath】
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与 ...
- python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(2)
上半部分内容链接 : https://www.cnblogs.com/lowmanisbusy/p/9069330.html 四.json和jsonpath的使用 JSON(JavaScript Ob ...
- python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)
一.数据类型及解析方式 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数 ...
- Python爬虫(十六)_JSON模块与JsonPath
本篇将介绍使用,更多内容请参考:Python学习指南 数据提取之JSON与JsonPATH JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是的人们很容易 ...
- python 数据提取之JSON与JsonPATH
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与 ...
- Python爬虫爬取百度翻译之数据提取方法json
工具:Python 3.6.5.PyCharm开发工具.Windows 10 操作系统 说明:本例为实现输入中文翻译为英文的小程序,适合Python爬虫的初学者一起学习,感兴趣的可以做英文翻译为中文的 ...
- python爬虫12 | 爸爸,他使坏,用动态的 Json 数据,我要怎么搞?
在前面我们玩了好多静态的 HTML 想必你应该知道怎么去爬这些数据了 但还有一些常见的动态数据 比如 商品的评论数据 实时的直播弹幕 岛国动作片的评分 等等 这些数据是会经常发生改变的 很多网站就会用 ...
- 爬虫数据提取之JSON与JsonPATH
数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...
- 【python接口自动化】- 使用json及jsonpath转换和提取数据
前言 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它可以让人们很容易的进行阅读和编写,同时也方便了机器进行解析和生成,适用于进行数据交互的场景,比如 ...
随机推荐
- 网络工程师和Linux运维工程师有什么区别?学哪个比较好?
网络工程师和Linux运维工程师有什么区别?学哪个比较好? 机缘巧合下,我进入了一家从事vpn与系统集成的公司,很感谢公司能留下我这个非网络工程专业的毕业生,从对网络一窍不通,慢慢可以自己独立完成工作 ...
- js 实现简单的导航下拉列表
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- windows下安装spark-python
首先需要安装Java 下载安装并配置Spark 从官方网站Download Apache Spark™下载相应版本的spark,因为spark是基于hadoop的,需要下载对应版本的hadoop才行, ...
- Python科学计算库SymPy初探
SymPy基础应用 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bord ...
- Swift 4.0 字符串(String)学习
定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...
- 安装SQL Server 2008R2 报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本”解决方法
安装SQL Server 2008 R2报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本,请在安装 SQL Server 2008 前将 VS2008 升级 ...
- c++动态内存知识总结与疑问
书名 BOOK TITLE <Primer c++ 第5版> 基本信息 BASICS 阅读进度:第12章动态内存 阅读心得 LEARNINGS 在c++中,我知道的有静态内存.栈内存. ...
- hdu1015+hdu1016 都是十分钟以内的深搜题
hdu1015:给定一串可用序列值,每个字符映射到一个1-26之间的整数,选择五个有序数使得满足 a-b2+c3-d4+e5=target. #include<iostream> #inc ...
- 两个看似相同,结果不同的SQL逻辑
一朋友问我的,看着挺有意思,记录一下: 表item1,里面有上面三个字段,一共10条数据,接下来有两个相似的sql语句得到了不一样的查询结果. 表数据如下: 两条SQL及查询结果: 我的理解答: S ...
- SecureCRT的主题配置
SecureCRT是用来远程连接服务器终端的常用软件,由于其本身的主题十分难看,故此经过一番查找,确定了自己喜欢的主题配置,下面是记录自己配置的过程. 修改主题样式 SecureCRT修改主题分两 ...