爬虫课程(十)|豆瓣:通过Pipeline保存数据到json文件和mysql数据库

在上一个课程爬虫课程(九)|Scrapy中items设计及如何把item传给Item Pipeline 中,我们知道了怎么把Item的值传给Pipeline管道,那么这篇文章我们就来介绍下怎么通过Pipeline把数据保存起来。

一、通过Pipeline把数据保存到Json文件

我使用的方法是调用scrapy提供的json export导出json文件,实际上scrapy.exporters提供了导出多个文件的方法,当我们去exporters.py源码查看是,我们发现它提供了8中导出文件的方式,如下图,我们这里只举例保存json格式。

exporters支持导出8中不同格式的文件

第一步,先到Pipeline文件编写一个保存json文件的Pipeline,如下图片:

编写Pipeline

第二步,把这个DataSubmitJsonFilePipeline配置到settings中,如下图:

settings

第三步,执行douban_book爬虫。

执行

最后,生成了doubanBook.json文件(默认格式是一行,我使用JSON Parser进行了格式化)。

doubanBook.json

二、通过Pipeline把数据保存到MYSQL数据库

第一步,先创建一个数据库spider_db,新建一个表tb_douban_book,并把对应的数据表字段增加上去,如下图,ps:如果有对mysql不了解的,可以留言告诉我,我再决定要不要写一篇文章来介绍下mysql的使用。

新建tb_douban_book表

第二步,编写一个插入数据库数据的Pipeline,如下图:

插入数据库的Pipeline

第三步,把这个DataSubmitMysqlPipeline配置到settings中,如下图:

配置settings

最后,执行douban_book爬虫,查看数据库的结果,所有的数据都成功插入到mysql数据表中。

数据入库

三、对上面数据插入MYSQL数据库的说明

我们知道上面的方法是通过同步的方式把Item中的数据插入到MYSQL数据库中,然后在实际应用中,为了能够更快速度地响应数据插入的请求,我们都是采用异步的方式把数据插入MYSQL数据库。

关于使用数据库连接池和异步的方式插入数据库的使用,我们会在后面的课程中讲解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容