大家好,小编来为大家解答以下问题,python的皮卡丘如何写代码,python皮卡丘字符打印代码,现在让我们一起来看看吧!
文章目录
前言存储数据的方式存储数据的基础知识基础知识:Excel写入与读取基础知识:csv写入与读取项目:存储周杰伦的歌曲信息复习
前言
上一关我们以QQ音乐为例,主要学习了如何带参数地请求数据(get请求)和Request Headers的用法,最终爬取到了周杰伦歌曲信息的数据。
那么有一个新的问题来了——爬到的数据要怎么存下来?
可能你会想到这样的方案:把爬到的数据一条条复制黏贴,然后存成Excel文件。这样的方案对于存储十几条数据还好说,可是当我们爬取到的数据超过几百条时,这样的方案显然不可取。
走到这一关卡,获取数据、解析数据以及提取数据,我们都学会了。独独差了存储数据这一步,这也是整个爬虫过程中不可或缺的一步。
所以,这一关要讲解的核心内容就是存储数据的正确方式。后面会依旧以QQ音乐为例,把我们上一关爬取到的周杰伦的歌曲信息的数据存储下来。
存储数据的方式
其实,常用的存储数据的方式有两种——存储成csv格式文件、存储成Excel文件(不是复制黏贴的那种)。
我猜想,此时你会想问“csv”是什么,和Excel文件有什么区别?
前面,我有讲到json是特殊的字符串。其实,csv也是一种字符串文件的格式,它组织数据的语法就是在字符串之间加分隔符——行与行之间是加换行符,同行字符之间是加逗号分隔。
它可以用任意的文本编辑器打开(如记事本),也可以用Excel打开,还可以通过Excel把文件另存为csv格式(因为Excel支持csv格式文件)。
运行以下三行代码,你就能直观清晰地知道csv是什么。
file=open('','a+')
#创建文件,以追加的读写模式
file.write('美国队长,钢铁侠,蜘蛛侠')
#写入文件
file.close()
#关闭文件
将我们刚刚写入的csv文件用记事本打开,你会看到:
用Excel打开,则是这样的:
发现了吗?csv文件里的逗号可以充当分隔同行字符串的作用。
为什么要加分隔符?因为不加的话,数据都堆在一起,会显得杂乱无章,也不方便我们之后提取和查找。这也是一种让数据变得有规律的组织方式。
另外,用csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小。但csv文件缺少Excel文件本身的很多功能,比如不能嵌入图像和图表,不能生成公式。
至于Excel文件,不用我多说你也知道就是电子表格。它有专门保存文件的格式,即xls和xlsx(Excel2003版本的文件格式是xls,Excel2007及之后的版本的文件格式就是xlsx)。
好啦,csv和Excel文件你都清楚了,我们可以继续学习存储数据的基础知识——如何写入与读取csv格式文件和Excel文件的数据。
存储数据的基础知识
存储成csv格式文件和存储成Excel文件,这两种不同的存储方式需要引用的模块也是不同的。操作csv文件我们需要借助csv模块;操作Excel文件则需要借助openpyxl模块。
放心,两个模块都并不复杂。本节的实操环节我们会用到Excel,先来一起学习一下。
基础知识:Excel写入与读取
好。请你跟着我的节奏,我们一起搞清楚如何往Excel格式文件写入和读取数据。
不过,在开始讲Excel文件的写入与读取前,我们还得稍微了解一下Excel文档的基本概念(考验你对Excel有多了解的时候到了٩(๑❛ᴗ❛๑)۶)。
【提问抢答环节】请问工作簿、工作表和单元格在Excel里分别是指什么?
一个Excel文档也称为一个工作簿(workbook),每个工作簿里可以有多个工作表(worksheet),当前打开的工作表又叫活动表。
每个工作表里有行和列,特定的行与列相交的方格称为单元格(cell)。比如上图第A列和第1行相交的方格我们可以直接表示为A1单元格。
清楚了Excel的基础概念,我们可以来说下openpyxl模块是怎么操作Excel文件的了。照例先说写入后说读取。
提醒:我们得先提前安装好openpyxl模块。课程的终端是已经安装好了,如果你想要在本地操作的话,就需要在本地上安装。(安装方法:window电脑:在终端输入命令:pip install openpyxl,按下enter键;mac电脑:在终端输入命令:pip3 install openpyxl,按下enter键)
装好openpyxl模块后,首先要引用它,然后通过openpyxl.Workbook()函数就可以创建新的工作簿,代码如下:
# 引用openpyxl
import openpyxl
# 利用openpyxl.Workbook()函数创建新的workbook(工作簿)对象,就是创建新的空的Excel文件。
wb = openpyxl.Workbook()
创建完新的工作簿后,还得获取工作表。不然程序会无所适从,不知道要把内容写入哪张工作表里。
# wb.active就是获取这个工作簿的活动表,通常就是第一个工作表。
sheet = wb.active
# 可以用.title给工作表重命名。现在第一个工作表的名称就会由原来默认的“sheet1”改为"new title"。
sheet.title = 'new title'
添加完工作表,我们就能来操作单元格,往单元格里写入内容。
# 把'漫威宇宙'赋值给第一个工作表的A1单元格,就是往A1的单元格中写入了'漫威宇宙