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

wwodge7n  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(173)

设置

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

scrapy crawl spider -o spider_ouput.csv

问题

导出新的spider_output.csv时,Scrapy会将其附加到现有的spider_output.csv
我能想到两个解决办法,
1.命令Scrapy覆盖而不是追加
1.命令终端在爬网前删除现有的spider_output.csv
我读到过(令我惊讶的是)Scrapy目前正在做isn't able。有些人已经提出了workarounds,但我似乎不能让it工作。
我找到了解决方案2的answer,但也无法使其工作。
有人能帮帮我吗?也许还有第三个解决方案我还没想到?

xyhw6mcr

xyhw6mcr1#

此功能的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
nnt7mjpx

nnt7mjpx2#

使用大O:

scrapy crawl spider -O spider_ouput.csv
t98cgbkg

t98cgbkg3#

选项-t定义了json、csv等文件格式
选项-o FILE将擦除的项目转储到FILE(将-用于标准输出)
>filename将输出通过管道传送到filename

覆盖以前的导出文件时,我们总共获得:

替换输出文件而不是追加:
爬行蜘蛛-t csv -o -〉蜘蛛.csv
或者对于json格式:
爬行蜘蛛-t json -o -〉蜘蛛.json

相关问题