在Scrapy中如何检查导出的文件是否已经存在?

时间:2017-03-02 08:56:18

标签: python web-scraping scrapy

我写了一些Scrapy蜘蛛。它将数据导出到我通过命令行传递的名称:E:\Anaconda3\envs\Blog2Doc\Lib\site-packages\scrapy\cmdline.py runspider blog2doc_scrapy\spiders\blog_spider.py -o ..\data\out.html。如果此文件已存在,则此蜘蛛只会将内容附加到现有文件。如何检查输出文件是否已存在以及是否存在 - 删除它。为了导出到文件,我写了Blog2DocExporter(BaseItemExporter)类。它没有打开输出文件,在构造函数中它已经打开了文件对象。所以在这个导出器类中,我无法检查导出的文件是否已经存在。

1 个答案:

答案 0 :(得分:0)

Scrapy覆盖输出文件是一个众所周知的开放问题。例如见:

我自己提出了一个修复程序来重命名后缀增加的文件。但实现不向后兼容。 尽管如此,您可能会觉得这很有用:https://github.com/scrapy/scrapy/pull/2093

它更改了FileFeedStorage,但您可以实现类似的功能,并查看this other answer以使用此类自定义Feed存储类。