存储爬虫抓取数据的5种方式比较

爬虫抓取数据后,怎样存储才是最好的方式呢?先来盘点一下可以使用的存储方式

  1. 以json格式存储到文本文件
  2. 存储到excel
  3. 存储到sqlite
  4. 存储到mysql数据库
  5. 存储到mongodb

1、以json格式存储到文本文件

这是最简单,最方便,最使用的存储方式,json格式保证你在打开文件时,可以直观的检查所存储的数据,一条数据存储一行,这种方式适用于爬取数据量比较小的情况,后续的读取分析也是很方便的。

2、存储到excel

如果爬取的数据很容易被整理成表格的形式,那么存储到excel是一个比较不错的选择,打开excel后,对数据的观察更加方便,excel也可以做一些简单的操作,写excel可以使用xlwt这个库,读取excel可以使用xlrd,同方法1一样,存储到excel里的数据不宜过多,此外,如果你是多线程爬取,不可能用多线程去写excel,这是一个限制。

3、存储到sqlite

sqlite无需安装,是零配置数据库,这一点相比于mysql要轻便太多了,语法方面,只要你会mysql,操作sqlite就没有问题。当爬虫数据量很大时,需要持久化存储,而你又懒得安装mysql时,sqlite绝对是最佳选择,不多呢,它不支持多进程读写,因此不适合多进程爬虫。

4、存储到mysql数据库

mysql可以远程访问,而sqlite不可以,这意味着你可以将数据存储到远程服务器主机上,当数据量非常大时,自然要选择mysql而不是sqlite,但不论是mysql还是sqlite,存储数据前都要先建表,根据要抓取的数据结构和内容,定义字段,这是一个需要耐心和精力的事情。

5、存储到mongodb

我最喜欢no sql 数据库的一个原因就在于不需要像关系型数据库那样去定义表结构,因为定义表结构很麻烦啊,要确定字段的类型,varchar 类型数据还要定义长度,你定义的小了,数据太长就会截断。

mongodb 以文档方式存储数据,你使用pymongo这个库,可以直接将数据以json格式写入mongodb, 即便是同一个collection,对数据的格式也是没有要求的,实在是太灵活了。

刚刚抓下来的数据,通常需要二次清洗才能使用,如果你用关系型数据库存储数据,第一次就需要定义好表结构,清洗以后,恐怕还需要定义个表结构,将清洗后的数据重新存储,这样过于繁琐,使用mongodb,免去了反复定义表结构的过程。

6、 redis可以用么?

不建议使用redis,不要说它很快,问题是你不需要那么快的存储速度和读取速度,redis被设计成用来做缓存的,它并没有合适的数据结构来存储你的爬虫抓取下来的数据,强行使用redis只会给你带来麻烦。

7、图片数据如何存储

图片可以存储到本地文件中,这样,你随时可以查看,如果数据量过大,你也可以存储到mongodb中,不过太小的图片存储到mongodb中有点浪费空间

综上,使用哪种存储方式,还是要结合实际情况来定,数据量小的就有文本,少一点考虑数据库,数据不复杂可以考虑关系型数据库,sqlite,mysql,数据复杂,甚至需要二次清洗加工的,存储到mongodb。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>