04、储存我们爬取的数据💪💪💪

存储


 

一、csv(使用csv模块)

  1、写入文件步骤

    ①创建文件(使用open()函数)

    

with open("文件名",‘w’,newline=‘’,encoding=‘编码格式’) as f:
    ……
    ……

    第一参数:文件名;第二个参数:文件的读取模式;第三个参数:保证存储的数据不空行;第四个参数编码格式

    ②创建对象(writer()函数)

      writer = csv.writer(f)

    ③把内容写入文件(使用writer对象的writerow()方法)

      writer.writerow(需要写入的数据)

    ④关闭文件(close()函数)

  2、读取csv文件的步骤

    ①打开文件(使用open()函数)

     open("文件名",'r')  as f:

    ②创建对象(reader()函数)

      reader = csv.reader(f)

    ③读取文件内容(遍历reader对象)

      for i in reader:

    ④打印内容(print()函数)

二、excel(使用openpyxl模块)

  1、写入excel文件

    ①创建文件(openpyxl.load_workbook())

    ②获取工作表对象(workbook对象的active属性)

    ③把数据写入单元格(获取单元格sheet['A1];添加一行append())

    ④保存数据(save()函数)

  2、读取Excel文件

    ①打开文件(openpyxl.load_workbook())

    ②获取工作表对象(workbook对象通过键来获取)

  ·   ③读取单元格数据(使用value属性)

    ④打印数据(print()函数)

  

一、openpyxl介绍安装

1.为什么要学Excel

存测试数据

      有时候有大批量的数据,存到TXT文件里面显然不是最佳的方式,我们可以存到Excel里面去,第一方便我们存数据和做数据,另一方面方便我们读取数据,比较明朗。测试的时候就从数据库中读取出来,这点是非常重要的。

存测试结果

可以批量把结果存入到Excel中,也是比较好整理数据点,比我们的TXT要好。

2.安装openpyxl

python中与excel操作相关的模块:

  • xlrd库:从excel中读取数据,支持xls、xlsx
  • xlwt库:对excel进行修改操作,不支持对xlsx格式的修改
  • xlutils库:在xlw和xlrd中,对一个已存在的文件进行修改。
  • openpyxl:主要针对xlsx格式的excel进行读取和编辑。

官方说法:网址:http://www.python-exceel.org/

安装方式:pip install openxl

3.Excel中的三大对象

  • WorkBook:工作簿对象
  • Sheet:表单对象
  • Cell:表格对象

二、openpyxl对Excel的操作

  • 创建一个工作薄:wb = openpyxl.Workbook()
  • 新增一个sheet表单:wb.create_sheet('test_case')
  • 保存case.xlsx文件:wb.save('cases.xlsx')
  • 打开工作簿:wb = openpyxl.load_workbook('cases.xlsx')
  • 选取表单:sh = wb['Sheet1'
  • 读取第一行、第一列的数据:ce = sh.cell(row = 1,column = 1)
  • 按行读取数据:row_data = list(sh.rows)
  • 关闭工作薄:wb.close()
  • 按列读取数据:columns_data = list(sh.columns)
  • 写入数据之前,该文件一定要处于关闭状态
  • 写入第一行、第四列的数据 value = 'result':sh.cell(row = 1,column = 4,value = 'result')
  • 获取最大行总数、最大列总数:sh.max_row、sh.max_column
  • del 删除表单的用法:del wb['sheet_name'] 
  • remove 删除表单的用法:sh = wb['sheet_name'] wb.remove(sh)

案例:📖

import requests
import openpyxl

url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'
wb=openpyxl.Workbook()
#创建工作薄
sheet=wb.active
#获取工作薄的活动表
sheet.title='songs_mayday'
#工作表重命名
column_name = ['歌曲名','所属专辑','播放时长','播放链接']
sheet.append(column_name)
for x in range(0,3):
    params = {
        'ct': '24',
        'qqmusic_ver': '1298',
        'new_json': '1',
        'remoteplace': 'sizer.yqq.song_next',
        'searchid': '64405487069162918',
        't': '0',
        'aggr': '1',
        'cr': '1',
        'catZhida': '1',
        'lossless': '0',
        'flag_qc': '0',
        'p': str(x + 1),
        'n': '20',
        'w': '五月天',
        'g_tk': '5381',
        'loginUin': '0',
        'hostUin': '0',
        'format': 'json',
        'inCharset': 'utf8',
        'outCharset': 'utf-8',
        'notice': '0',
        'platform': 'yqq.json',
        'needNewCode': '0'
    }
    # 将参数封装为字典
    res_music = requests.get(url, params=params)
    # 调用get方法,下载这个列表
    json_music = res_music.json()
    # 使用json()方法,将response对象,转为列表/字典
    list_music = json_music['data']['song']['list']
    # 一层一层地取字典,获取歌单列表
    for music in list_music:
        name = music['name']
        # 以name为键,查找歌曲名,把歌曲名赋值给name
        album = music['album']['name']
        # 查找专辑名,把专辑名赋给album
        time = music['interval']
        # 查找播放时长,把时长赋值给time
        link = 'https://y.qq.com/n/yqq/song/' + str(music['file']['media_mid']) + '.html\n\n'
        # 查找播放链接,把链接赋值给link
        sheet.append([name, album, time, link])
        # 把name、album、time和link写成列表,用append函数多行写入Excel

wb.save('mayday.xlsx')
wb.close()

 

上一节       下一节   返回目录

👆      👆    👆

 

posted @ 2020-08-10 09:13  贫僧敲代码  阅读(190)  评论(0)    收藏  举报