Scrapy:命令覆盖以前的导出文件

Scrapy: command to overwrite previous export file

设置

我通过终端中的标准命令将我的数据导出到 .csv 文件 (Mac OS),例如

scrapy crawl spider -o spider_ouput.csv 

问题

导出新的 spider_output.csv 时,Scrapy 会将其附加到现有的 spider_output.csv

我可以想到两个解决方案,

  1. 命令 Scrapy 覆盖而不是追加
  2. 命令终端在抓取之前删除现有的 spider_output.csv

我读到(令我惊讶的是)Scrapy 目前 isn't able to do 1. Some people have proposed , but I can't seem to get 可以工作。

我找到了解决方案 2 的 ,但也无法正常工作。

有人可以帮助我吗?也许还有我没有想到的第三种解决方案?

此功能的 scrapy 存在未解决的问题: https://github.com/scrapy/scrapy/issues/547

问题线程中提出了一些解决方案:

scrapy runspider spider.py -t json --nolog -o - > out.json

或者只删除 运行 scrapy spider 之前的输出:

rm data.jl; scrapy crawl myspider -o data.jl

选项 -t 定义文件格式,如 json、csv、...

选项 -o FILE 将抓取的项目转储到文件中(使用 - 作为标准输出)

>filename 管道输出到文件名

我们总共得到覆盖以前的导出文件:

替换输出文件而不是附加:

scrapy crawl spider -t csv -o - >spider.csv

或 json 格式:

scrapy crawl spider -t json -o - >spider.json

使用大O:

scrapy crawl spider -O spider_ouput.csv