【爬虫笔记】关于json

对于静态网页,爬虫的时候可以直接将页面的HTML网页源码下载下来,然后利用Beautiful Soup库进行网页解析,获得网页内的信息。

而对于动态加载或异步加载的网页,会出现直接下载网页后页面信息不全的情况,这时可以通过浏览器的“开发人员工具”中的“网络”工具,查看网页加载过程中的网络连接情况,分析找到其中获取数据的链接,通常网页会通过get请求获取一个json,然后通过对json的解析,完成信息的获取,然后通过一系列的过程(可以是JavaScript程序)完成页面的更新显示。

因而在动态加载的网页爬虫时,我们只需要像浏览器那样,通过特定的get链接,获取到json,然后对json进行解析即可。

在python中对json进行解析时可以利用json库中的loads函数完成,关键语句如下:

import json

import requests

url= 'https://这里是获取json的网页链接,通过网络连接分析获得'

# 设置请求网络连接时的User-Agent,不设置容易被网站拦截
headers={'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E)'}

# 发起网页连接请求
response=requests.get(url,headers=headers)

# 获取响应内容(json的文本形式)
jsonText = response.text

# 通过loads函数解析获取得到的json文本
jsonData = json.loads(jsonText)

# 解析后的数据会变为python中的字典类型的数据,因此可以像字典一样对json中的内容进行读取
dataList =jsonData['data']['searchResult']['dataResults']

# 同样的,如果原始json中包含了list,解析后字典里相应内容也是以list的形式出现,因此可以通过list元素的序号访问其中的元素
zcTitle=jsonData[0]

    

tips:json的可视化分析可以通过网上的json在线解析工具完成,我用的是EBJSON的json在线解析工具【https://www.bejson.com/explore/index_new/】,这个工具的优点在于其可以显示json的中的JS类型以及数组索引,对于分析json还是比较有帮助的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值