常见的四种数据保存形式
从网络上爬取所有需要的数据,用解析器解析出所有数据之后,接下来就是存储数据。常用到的存储方式可以保存为文本文件或数据库中,文本存储形式多种多样,下面先介绍文件存储的方式!
一、TXT文本存储
将数据保存到TXT文本这种方法操作简单高效,而且TXT文本兼容性很好,基本兼容任何平台,是一种最基本的保存数据的方法。但是不利于检索。
存储方式:
#第一种方式:
with open('data.txt','a',encoding='utf-8') as file: #创建文件
file.write() #写入具体内容
file.close() #最后一定要记得关闭文件
#第二种方式:
file=open('data.txt','a',encoding='utf-8') #创建文件
file.write() #写入内容
file.close() #关闭文件
二、CSV文件存储
CSV中文叫作逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据,结构简单清晰。
写入方法:
import csv
with open('data.csv','w',encoding='utf-8') as csvfile1:
writer=csv.writer(csvfile1) #调用writer()方法初始化写入对象
writer.writerow(['id','name','age']) #调用writerow()方法传入每行数据
writer.writerow(['1','Mike',20])
writer.writerow(['2','John',18])
#如果要修改列与列之间的分隔符,可以传入delimiter参数
with open('data.csv','w',encoding='utf-8') as csvfile2:
writer=csv.writer(csvfile2,delimiter=' ')
writer.writerow(['id','name','age'])
writer.writerow(['1','Mike',20])
#也可以调用writerows()方法同时写入多行
with open('data.csv','w',encoding='utf-8') as csvfile3:
writer=csv.writer(csvfile3)
writer.writerow(['id','name','age'])
writer.writerows([['1','Mike',20],['2','Bob',15]])
读取方法:
import csv
with open('data.csv','r',encoding='utf-8') as csvfile:
reader=csv.reader(scvfile)
for row in reader:
print(row)
三、JSON文件存储
json通过对象和数组的组合来表示数据,构造简洁、结构化程度高,是一种轻量级的数据交换格式
读取方法:
import json
str='''
[{
"name":"Mike",
"gender":"male", #tip:json的数据需要用双引号来包围,
"age":"20" #不能使用单引号
},{
"name":"Bob",
"gender":"male",
"age":"15"
}]'''
#调用loads()方法将json文本字符串转为json对象
data=json.loads(str)
print(data)
#读取文件:
with open('data.json','r',encoding='utf-8') as file:
str=file.read()
data=json.loads(str)
print(data)
写入json方法:
import json
data=[{
"name":"Bob",
"gender":"male",
"age":"15"
}]
with open('data.json','w',encoding='utf-8') as file:
#调用dumps()方法将json对象转为文本字符串,ensure_ascii参数为false,可以输出中文
file.write(json.dumps(data,ensure_ascii=False))
四、保存成Excel
将数据保存成Excel也是常见的一种数据存储形式,基本的存储方法可见下面代码,但将爬虫获取解析到的数据保存到Excel表格中时要注意保存的逻辑
保存方法:
import xlwt
#第一种:
workbook = xlwt.Workbook(encoding="utf-8") # 创建一个工作表的对象
sheet = workbook.add_sheet('信息表') # 设置一个excel表明
sheet.write(0,0,"name") # 往表格里边填充数据,第一个参数行号,第二个参数列
sheet.write(0,1,"age")
sheet.write(0,2,"height")
sheet.write(1,0,"张三")
sheet.write(1,1,"20")
sheet.write(1,2,"177")
workbook.save("infos.xls")
五、文件常见打开方式:
r | 以只读方式打开文件 |
rb | 以二进制只读方式打开文件 |
r+ | 以读写方式打开一个文件,文件指针将放在开头 |
w | 以写入方式打开一个文件 |
w+ | 以读写方式打开一个文件,如果文件不存在则创建,否则覆盖 |
a | 以追加方式打开一个文件,文件指针放在文件结尾 |
以上就是数据存储的基本方法啦,这些都是一些基本,在实际爬虫储存过程中要注意具体存储的逻辑,避免只存储到一条数据或者没有存储到数据,可以结合基本方法,看看实例中的数据存储代码!