阅读文本需要2分钟
在上一次的爬取代理IP的实战中并没有用到数据库,只是单纯的将爬取到的数据写进json文件,这样子不方便我们以后使用。所以在这里讲述一下在scrapy中如何使用数据库存储。
MongoDB介绍
可能我们经常使用的数据库是,MySQL、oracle这些数据库,这些数据库都是关系数据库,现在我们使用另外一种数据库——MongoDB
MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
比如下面的这样
在这里就不写MongoDB的安装过程了,我会在留言下面放上教程链接
pymongo安装
想要在scrapy中使用MongoDB,除了安装好MongoDB数据库之外,还需安装pymongo。
直接使用pip安装就可以,中间应该不会出现什么问题
pip install pymongo
item pipeline介绍
假设已经安装好了,下面就来介绍一下scrapy是如何存储的。
在scrapy的文档中,这样写道:
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。
每个item pipeline组件(有时称之为“Item Pipeline”)是实现了简单方法的Python类。他们接收到Item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或是被丢弃而不再进行处理。
所以,我们可以按照文档的要求,一步步地实现我们的目的。
实现步骤:
1. 在中定义存储类
2. 在中存储类初始化
3. 在中实现 process_item(item, spider)
4. 在中启用一个Item Pipeline组件
下面就直接放出在这两个文件的代码了,注释已经写得很清楚了,相信你们可以看得懂
pipelines.py
settings.py
当我们想用MongoDB存储时,pipelines.py可以不用修改,直接拿来使用就可以;settings.py在使用的时候,只需修改数据库名和表名就可以了
总结
领取专属 10元无门槛券
私享最新 技术干货