在第一个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/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

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

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

本站的忠实读者小伙伴,正在阅读下面这些文章: