ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫(五):储存爬到的数据

2021-07-15 22:00:31  阅读:214  来源: 互联网

标签:文件 储存 sheet 写入 爬虫 file csv 数据 film


目录

储存数据的方式

  • 常用的存储数据方式其实有很多种:把数据存储在文件中,例如csv格式文件或者Excel文件;用csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小;Excel文件本身的功能更为强大。
  • 也可以将数据存储在数据库中,例如mysql。

csv

csv是一种字符串文件格式,语法:在字符串之间加分隔符----行与行之间加换行符,同列之间加逗号分隔。文件后缀 .csv

csv格式文件可以用任意的文本编辑器打开(如记事本),也可以用excel打开,还可以通过excel把文件另存为csv格式。

储存数据的基础知识

操作csv文件
import csv

操作excel文件
import openpyxl

csv文件的写入与读取

写入:
    打开文件
    构造对象
    使用writerowd()方法写入
    关闭文件

读取:
    打开csv文件
    构造对象
    调用reader()读取文件
    关闭文件
import csv

# 需要写入的数据
score1 = ['math', 95]
score2 = ['english', 90]

# 打开文件,追加a, newline="",可以删掉行与行之间的空格
file= open("score.csv", "a", newline="")

# 设定写入模式
csv_write = csv.writer(file)

# 写入具体内容
csv_write.writerow(score1)
csv_write.writerow(score2)
file.close() 
open_file('score.csv')

# 打开csv文件
file = open("score.csv",'r')   # r只读

# 读取文件内容,构造csv.reader对象
reader = csv.reader(file)

# 打印reader中的内容
for item in reader:
    print(item)
file.close

对excel文件进行读写

import openpyxl
# 引用openpyxl

# 写入
wb = openpyxl.Workbook()
# W 要大写 利用openpyxl.Workbook()函数创建新的workbook(工作薄)对象,就是创建新的空的Excel文件。一个Excel文档也称为一个工作薄(workbook),每个工作薄里可以有多个工作表(wordsheet)
sheet = wb.active
# wb.active就是获取这个工作薄的活动表,通常就是第一个工作簿,也就是sheet1。
sheet.title = 'sheet_name'
# 可以用.title给工作表重命名。现在第一个工作表的名称就会由原来默认的“sheet1”改为"sheet_name"。
sheet['A1'] = 'score'
# 向单个单元格写入数据
score1 = ['math', 95]
sheet.append(score1)
# 写入整行的数据,变量类型是一个列表
wb.save('score.xlsx')
# 保存修改的Excel
wb.close()
# 关闭Excel

# 读取
wb = openpyxl.load_workbook('score.xlsx')
# 打开的指定的工作簿
sheet = wb['sheet_name']
# 指定读取的工作表的名称
A1_value = sheet['A1'].value
print(A1_value)
# 获取

在csv文件中写入,豆瓣电影排行榜相关电影信息

url = "https://movie.douban.com/chart"
headers = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'}
# 没有头会返回408,就是你爬取的网站有反爬虫机制,我们要向服务器发出爬虫请求,需要添加请求头:headers
res = requests.get("https://movie.douban.com/chart",headers=headers)
str = res.text
soup = BeautifulSoup(str,"html.parser")
items = soup.find_all('div',class_ ='pl2')
file= open('movie.csv','a' ,encoding='utf-8-sig')   
#处理数据时需要将txt文件转化成csv格式,txt中正常存储显示的中文在写入到csv文件时变成了乱码,文件的编码未能正确处理中文,需要在写入csv文件时指定编码
csv_writer = csv.writer(file)
info = ['name','message','star','url']
csv_writer.writerow(info)
for item in items:
    tag_a = item.find('a')
    film_name = tag_a.text.replace(' ','').replace('\n','')
    film_url = tag_a['href']
    film_message = item.find('p',class_= 'pl')
    message = film_message.text.replace(' \n','')
    film_star = item.find('div',class_='star clearfix')
    star = film_star.text.replace(' ','').replace('\n','')
    movie =[film_name,message,star,film_url]
    print(movie)
    csv_writer.writerow(movie)      
file.close()

标签:文件,储存,sheet,写入,爬虫,file,csv,数据,film
来源: https://www.cnblogs.com/The-dancing-salted-fish/p/15017725.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有