Scrapy python json输出,写入之前清除文件

时间:2015-07-30 10:53:17

标签: python json python-2.7 scrapy scrapy-spider

我目前正在使用Scrapy收集数据并使用

输出到json文件
scrapy crawl foobar -a category=foo -o bar.json

虽然这会附加到bar.json文件而不是重写它。我想清除文件并重写它,是否可以使用scrapy参数?

或者我是否需要先用scrapy清除它?

非常感谢。

4 个答案:

答案 0 :(得分:1)

您可以先删除输出文件,然后使用;

开始抓取新数据

rm output_file_name.csv; scrapy crawl spider_name -o output_file_name.csv

答案 1 :(得分:1)

修改脚本如下:

class MySpider(Spider):
    """
    Main crawler
    """
    name = "mucrawler"
    allowed_domains = ["sss.com"]
    start_urls = ["https://www.sdsd/rov/"]

    "Empty output file"
    f = open("bar.json", 'w').close()

    def parse(self, response):
        titles = response.css("td.offer")

答案 2 :(得分:0)

目前没有针对此问题的自动解决方案,尽管GitHub存在关于此主题的未解决问题。

这意味着您必须在启动抓取之前删除该文件。

一种解决方法是编写一个项目导出器,在初始化时删除输出文件(如果已经存在,则导出项目)。

答案 3 :(得分:0)

除了@GHaijba所说的,另一个解决方案是创建自己的管道,然后你可以对任何文件应用你想要的任何动作。

例如, 您可以检查文件是否存在。然后,您可以清除它或附加日期。

您可以写入不同的文件。

您也可以清除管道中的一些项目,因为在您的蜘蛛中执行此操作不是一个好习惯