我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在第一个scrapy范例中,苏南大叔按照官方教程,得到了一个.json文件。那么本文中,大家就一起发散一下思维。如果我们想要的是个xml文档呢?如果是其它的一些格式呢?

苏南大叔:scrapy爬虫系列:scrapy 数据如何导出为不同文件格式? - scrapy-export
scrapy爬虫系列:scrapy 数据如何导出为不同文件格式?(图4-1)

这就是本文的主要讨论内容:scrapy如何控制导出文件格式。

支持导出为.json/.xml/.csv/.jl常见格式

这些常见的格式中,scrapy支持导出为.json文件,还可以导出为.xml文件,还可以导出为.csv文件。下面给出基于上述基本例子的不同命令及结果。

scrapy runspider quotes_spider.py -o quotes.json
scrapy runspider quotes_spider.py -o quotes.xml
scrapy runspider quotes_spider.py -o quotes.csv
scrapy runspider quotes_spider.py -o quotes.jsonlines

这个.jsonlines/.jl.json格式基本一致,不过,从编程角度上来说,.json是个数组,.jsonlines/.jl不是数组。大家对比看看。下面的网址是.jsonlines的官方说明网址:

苏南大叔:scrapy爬虫系列:scrapy 数据如何导出为不同文件格式? - json_vs_jsonlines
scrapy爬虫系列:scrapy 数据如何导出为不同文件格式?(图4-2)

csv的效果不是很好,大家暂时放弃吧。xml的效果非常不错。

苏南大叔:scrapy爬虫系列:scrapy 数据如何导出为不同文件格式? - xml_vs_xls
scrapy爬虫系列:scrapy 数据如何导出为不同文件格式?(图4-3)

支持导出如下不常见格式

苏南大叔,其实不知道.pickle/.marshal这两个格式,到底是用在什么地方的。所以就归类为不常见格式里面了。

scrapy runspider quotes_spider.py -o quotes.pickle
scrapy runspider quotes_spider.py -o quotes.marshal

苏南大叔:scrapy爬虫系列:scrapy 数据如何导出为不同文件格式? - unknown-format
scrapy爬虫系列:scrapy 数据如何导出为不同文件格式?(图4-4)

相关链接

总结

这种导出数据的方式,还是有点应用场景的,比如用于不同系统的数据交换。比如在navicat中,使用csv/xml作为中间交换格式,是非常常见的使用场景。对吧?

更多scrapy的使用经验,请点击:https://newsn.net/tag/scrapy/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    scrapy