储存数据最简单的方法是使用输出Feed(输出文件),命令行中使用以下的命令:
scarpy crawl quotes -o quotes.json
这将会生成包含所有爬取项目名为quotes.json文件,以JSON格式序列化。
由于历史因素,Scrapy应用于给定的文件而不是覆盖它的内容。如果你在没有事先移除生成的JSON文件下运行此命令两次,你将会得到一个损坏的JSON文件。
你也可以使用其他的格式数据,比如说JSON Lines:
scrapy crawl quotes -o qutoes.jl
JSON Lines格式是方便易用的,就像是流(stream)一样,你可以简单地在其中添加记录数据。
当你运行上面命令两次,它不会有JSON格式文件的问题。同时,每一个记录的数据都是单独一行,你无需在内存中配置任何东西即可加载大型文件,在命令行中有像JQ一类的工具协助操作。
在小型项目中(像本教程)已经是足够使用了。然而如果你想在爬取到的项目中开展更复杂的东西,你可以写一个Item Pipeline。当爬虫项目被创建时,已经生成了一个Item Pipeline文件在tutorial/pipelines.py中。虽然你不需要实现任何的item pipelines,你不是想储存爬取的项目,但是文件还是被创建了。
网友评论