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

时间:2017-04-25 08:36:25

标签: python scrapy export overwrite

设置向上

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

scrapy crawl spider -o spider_ouput.csv 

问题

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

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

  1. 命令Scrapy覆盖而不是追加
  2. 命令终端在抓取之前删除现有的spider_output.csv
  3. 我已经读过(令我惊讶的)Scrapy目前isn't able要做的事情1.有些人提议workarounds,但我似乎无法让it工作。

    我找到了answer解决方案2,但无法让它工作。

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

选项-o FILE将已删除的项目转储到FILE中(对{stdout使用-

>filename管道输出到文件名

我们完全覆盖以前的导出文件:

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

  

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

或json格式:

  

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