爬虫实践——数据存储到Excel中
在进行爬虫实践时,我已经爬取到了我需要的信息,那么最后一个问题就是如何把我所爬到的数据存储到Excel中去,这是我没有学习过的知识。
如何解决这个问题,我选择先百度查找如何解决这个问题。
百度查到的方法千万种,我先选择看得懂的文章下手,不断尝试,最后解决了问题
那么到底如何解决这个问题呢?
解决这个问题要用到三个模块分别是xlwt、xlrd和xlutils
在使用这两个模块时要先下载安装它们,我用的是pycharm编写程序,我用到的安装方法是:
#在文件中导入xlwt、xlrd 和xlutils
import xlwt
import xlrd
import xlutils
再写入它们之后,会报错,把鼠标分别移到xlwt上点击一下,
它的头上会有一个红色的小灯泡,点击灯泡再点击install and import package "xlwt"
xlrd和xlutils同理
这样这三个模块就安装好了
模块安装好了,下一步就是要学会如何使用这三个模块了
xlwt模块:
import xlwt file_name = r'C:\Users\樱花雨\Desktop\test.xls'#这是你要保存文件的文件路径和文件名
workbook = xlwt.Workbook()#表示新建xls工作簿
sheet1 = workbook.add_sheet('worksheet')#新建xls表,表的名字是worksheet
for a in range(1,16):
# 把数据写入xls中,行,列,值
sheet1.write(0, 0, 'I')
sheet1.write(0, 1, 'love')
sheet1.write(0.2, 'python')
# 保存xls到file_name的路径下和文件名
workbook.save(file_name)
xlrd和xlutils模块:(xlrd参考链接:xlrd)
import xlrd
from xlutils.copy import copy xlsfile = r'C:\Users\樱花雨\Desktop\test.xls'
#打开xsl文件
book = xlrd.open_workbook(xlsfile)
#获取表格的名字
sheet_name = book.sheet_names()
print(sheet_name)
#获取工作表
#(1)通过索引顺序获取
#sheet = bool.sheets()[0]
#(2)通过名称获取
#sheet = book.sheet_by_name(r'worksheet')
#(3)通过索引顺序获取
sheet = book.sheet_by_index(0)
#获取表中的行数
nrows = sheet.nrows
#获取表中的列数
ncols = sheet.ncols
print(nrows)
print(ncols)
#获取表中整行的内容
row_data = sheet.row_values(0)
#获取表中列内容
col_data = sheet.col_values(0)
print(row_data)
print(col_data)
#获取表中单元格的内容
cell_value = sheet.cell_value(3,0)
print(cell_value)
#获取表中单元格的内容
cell_value2 = sheet.cell(3,0)
print(cell_value2)
#修改或添加单元格内容
#ctype:0 empty ;1,string;2 number;3 date;4 boolean;5 error
#value:写入单元格中的内容
#xf:0
#sheet.put_cell(row,col,ctype,value,xf)
sheet.put_cell(1,2,1,"test",0)
cell_value2 = sheet.cell(1,1)
print(cell_value2)
#保存xlsfile
wb = copy(book)
wb.save(xlsfile)
爬虫实践——数据存储到Excel中的更多相关文章
- 如何将存储在MongoDB数据库中的数据导出到Excel中?
将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- c#.net循环将DataGridView中的数据赋值到Excel中,并设置样式
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel ...
- phpexcel的写操作将数据库中的数据导入到excel中
这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持.于是乎我就将它转化为2003.感觉支持地很好. 下面介绍一下具体的使用: require_once('. ...
- Java基础知识强化之IO流笔记46:IO流练习之 把文本文件中数据存储到集合中的案例
1. 把文本文件中数据存储到集合中 需求:从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合. 分析: 通过题目的意思我们可以知道如下的一些内容, 数据 ...
- 将Datagridview中的数据导出至Excel中
首先添加一个模块ImportToExcel,并添加引用 然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...
- JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder
JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringB ...
- IOS开发数据存储篇—IOS中的几种数据存储方式
IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09 421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
随机推荐
- [NOIP2018模拟赛10.16]手残报告
[NOIP2018模拟赛10.16]手残报告 闲扯 炉石乱斗模式美滋滋啊,又颓到好晚... 上来T2先敲了树剖,看T1发现是个思博DP,然后没过大样例,写个暴力发现还是没过大样例!?才发现理解错题意了 ...
- java Spring boot项目简单说明
前言 一直从事.NET开发,但一直有种想去探索Java世界的冲动,今天终于有时间来尝试一下,以下是自己探索过程的简要记录. 一.开发工具 开发工具选用 IntelliJ IDEA社区版(免费),安装教 ...
- 2.2 使用 JAXP 对XML文档进行SAX解析
使用JAXP 对 XML文档进行 SAX解析: public class Demo1 { /** * 使用JAXP对XML文档进行SAX解析 * @throws Exception * @throws ...
- Hadoop_19_MapReduce&&Yarn运行机制
1.YARN的运行机制 1.1.概述: Yarn集群:负责海量数据运算时的资源调度,集群中的角色主要有:ResourceManager.NodeManager Yarn是一个资源调度(作业调度和集群资 ...
- DA_01_linux_物理机局域网工作机制
一:物理机局域网工作机制: 二:域名服务的工作流程: 首先通过域名映射到IP地址,如果没有找到域名,向外部服务器DNS查询,然后通过IP地址访问服务器: 三:Vmware--NAT虚拟网络配置:
- myeclipse 关闭jsp悬浮提示
myeclipse越来越智能,身为码农的我却越来越伤心.虽然你很智能,但请你提供一些有用的信息给我,不要乱七八槽的,不问青红皂白就塞一大堆提示给我,对不起,哥不需要这些!!! 都知道,使用myecli ...
- mysql_config_editor设置
[root@node01 etc]# mysql_config_editor set -G mysql3307 -S /tmp/mysql3307.sock -uroot -pEnter passwo ...
- @Transactional(转)
概述@Transactional 是声明式事务管理 编程中使用的注解 添加位置 接口实现类或接口实现方法上,而不是接口类中访问权限:public 的方法才起作用 @Transactional 注解应该 ...
- redistempalate的超时设置的操作更新
redistempalate的超时设置时,一定要每次用set写入时,更新超时,默认是不会自动更新的. 例如: int tempTime = this.redisTemplate.getExpire(& ...
- vue2 练习
table标签的frame和rules属性,可以控制边框的显示.frame属性控制着表格最外围的四条边框的可见性,而 rules 则控制着表格内部边框的可见性. frame属性可取的值及含义如下: * ...