数据提取值json

本文介绍了JSON在爬虫中的重要性,讲解如何找到返回JSON数据的URL,以及如何利用json模块中的loads()和dumps()方法进行数据转换。以豆瓣热映电影和36ke首页新闻为例,阐述了在实际爬取过程中处理JSON数据的技巧。
摘要由CSDN通过智能技术生成

目标

  • 理解json的概念
  • 了解爬虫中json出现的位置
  • 掌握json相关的方法

1. json可用于结构化数据的提取

由于把json数据转化为培养他虹内建数据类型很简单,所以爬虫中,如果我们能找到返回json数据的url,就会尽量使用这种url,而很多地方也都会返回json

2. 什么时json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

3. 哪里能找到返回的json的url

以豆瓣热映电影信息为例,寻找返回json的url地址。
这个例子中,电脑版热映信息存在html中,手机版存在json中。

3.1 如何确定数据在哪里

在url地址对应的响应中搜索关键词即可,搜索发现电脑版是存在html中的
注意:url地址对应的响应中,中文往往是被编码之后的内容,所以更推荐大家去搜索英文和数字;另外一个方法就是在perview中搜索,其中的内容都是转码之后的。

3.2 切换手机版寻找json地址

我们通过抓包找到手机版json地址后,打开地址发现响应中包含的数据并不是我们想要的,为什么呢?

对比抓包的地址和现在地址的请求headers ,就发现是Referer字段缺少的原因。

在上面这个地址中,我们发现响应中包含部分数据并不是我们想要的,如下:

;jsonp1({'count': 18, 'subject_collection'..."})

其中jsonp1似乎很眼熟,在请求地址中包含一个参数callback=jsonp1,正式因为这个参数的存在,才导致结果中有这部分数据,对应的解决办法是:直接删除callback=jsonp1字段即可。在url地址中很多字段都是没用的,可大胆尝试。

4. json模块中的方法

json模块提供了四个功能:dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。
在这里插入图片描述

4.1 json.loads()

把Json格式字符串转换成Python数据类型

import json

json_str = '{"city": "北京", "name": "大猫"}'
print(type(json_str))   # <class 'str'>
ret = json.loads
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值