二、Json获取以及数据存储

一、Json获取

这一部分需要具备基本的开发基础,因为目前很多网站都是动态网页,数据并没有一次行全部返回到第一次渲染的html中,所以这时就需要从动态数据动手获取了。
其实这一步比较简单,根据上一篇中积累的基础,这次只需要使用requests的另外一个方法——json解析
res.json()
这时的数据已经是python中的字典对象了,所以可以对其进行字典操作。

Example(感兴趣可以看看网址的内容)

import requests
# 引用requests库
res_music = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=60997426243444153&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%91%A8%E6%9D%B0%E4%BC%A6&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0')
# 调用get方法,下载这个字典
json_music = res_music.json()
# 使用json()方法,将response对象,转为列表/字典
list_music = json_music['data']['song']['list']
# 一层一层地取字典,获取歌单列表
for music in list_music:
# list_music是一个列表,music是它里面的元素
    print(music['name'])
    # 以name为键,查找歌曲名

其实更多时候动态数据获取还需要用到参数的传递

params = {
	'a': 'a',
	'b': 'b'
}
res = requests.get('url',params=params)
#其实有时候网站为了防止爬虫会做一些检测,那么这时候就需要我们携带头部信息前去获取内容了,
#一般使用一下三个即可,这个可以从网页requests headers中得到
headers = {
	'origin':'',
    # 请求来源,本案例中其实是不需要加这个参数的,只是为了演示
    'referer':'',
    # 请求来源,携带的信息比“origin”更丰富,本案例中其实是不需要加这个参数的,只是为了演示
    'user-agent':'',
    # 标记了请求从什么设备,什么浏览器上发出
}
res = requests.get('url',headers=headers,params=params)

二、数据存储——csv与excel存储

1、csv写入与读取

python中自带csv模块,直接导入即可

1.1写入
import csv
#引用csv模块。
csv_file = open('demo.csv','w',newline='',encoding='utf-8')
#调用open()函数打开csv文件,传入参数:文件名“demo.csv”、写入模式“w”、newline=''、encoding='utf-8'。
writer = csv.writer(csv_file)
# 用csv.writer()函数创建一个writer对象。
writer.writerow(['电影','豆瓣评分'])
#调用writer对象的writerow()方法,可以在csv文件里写入一行文字 “电影”和“豆瓣评分”。
writer.writerow(['银河护卫队','8.0'])
#在csv文件里写入一行文字 “银河护卫队”和“8.0”。
writer.writerow(['复仇者联盟','8.1'])
#在csv文件里写入一行文字 “复仇者联盟”和“8.1”。
csv_file.close()
#写入完成后,关闭文件就大功告成啦!
1.2读取
import csv
csv_file = open('demo.csv','r',newline='',encoding='utf-8')
reader = csv.reader(csv_file)
for row in reader:
    print(row)
2、excel写入与读取

首先安装openpyxl模块pip install openpyxl

2.1写入
import openpyxl 
#写入的代码:
wb = openpyxl.Workbook() 
sheet = wb.active
sheet.title = 'new title'
sheet['A1'] = '漫威宇宙'
rows = [['美国队长','钢铁侠','蜘蛛侠','雷神'],['是','漫威','宇宙', '经典','人物']]
for i in rows:
    sheet.append(i)
print(rows)
wb.save('test.xlsx')
2.2读取
#读取的代码:
wb = openpyxl.load_workbook('test.xlsx')
sheet = wb['new title']
sheetname = wb.sheetnames
print(sheetname)
#打印工作簿的所有工作表表名
A1_cell = sheet['A1']
A1_value = A1_cell.value
print(A1_value)

目前为止已经有了简单的静态网页数据获取与动态网页数据获取的知识以及数据的存储,下面会有几个关于以上综合知识的例子以及后面的进阶。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值