使用scrapy 保存文件(json, csv)

上一篇我们介绍了使用scrapy保存图片的两种办法,这一篇介绍使用scrpay保存数据,格式为json 或者csv等 的处理方式
保存的方式分为两种,这次以小说阅读网为例,以爬取小说阅读网青春分类里面的小说,提取书名,作者,简介,将这些数据存入json。

方法一:朴素法

关于创建,Xpath提取不再过多介绍,这里直接上代码
1 提取所需元素,并在Items 传值
使用scrapy 保存文件(json, csv)
2 平时在命令行运行时,都是 scrapy crawl … ,这次我们写入scrapy crawl xiao -o xiaoshuo.json -s FEED_EXPORT_ENCODING=UTF-8
使用scrapy 保存文件(json, csv)
以上代码,xiao.py 是主文件的名字,xiaoshuo.json 表示保存的名字和格式,FEED_EXPORT_ENCODING=UTF-8表示编码格式
使用scrapy 保存文件(json, csv)
当然,也可以写成xiaoshuo.csv , xiaoshuo.xml, 还有 marshal, pickle等格式
使用scrapy 保存文件(json, csv)
使用scrapy 保存文件(json, csv)

二 精致法

1 在数据提取,和Items传递值,与前面都是一样的,这里不同的是,需要在pipelines里写一些东西
使用scrapy 保存文件(json, csv)
其中类名为XiaoshuoPipeline为内置类,在其里面进行书写,filename可以根据你想保存的数据格式进行自定义,
最后两个函数名字也是固定的,不写的话也可以运行出来,但是得关闭文件,所以还是写上好
2 设置pipelines,前面也有提到过,
使用scrapy 保存文件(json, csv)
3 保存效果如图
使用scrapy 保存文件(json, csv)
使用scrapy 保存文件(json, csv)
可以看到,这种方法在进行输出的时候,并不需要在命令行修改输入命令,还是和以前一样,输入scrapy crawl ..
这种方法灵活性更高,也可以自己向要保存的表里添加数据。 所以,更建议使用后一种方法。