具有多个蜘蛛和 CSVItemExporter 的 Scrapy CSV header 行格式

Scrapy CSV header row format with Multiple spiders and CSVItemExporter

我是运行四只蜘蛛,正在将数据导出到一个csv文件中。但是,当第二个蜘蛛运行它并获取数据时,它会创建具有列名的同一行。我试图用 FEED_EXPORT_FIELDS 格式化行 header 但这没有用。

我想要做的是有 1 行 header 并为每个蜘蛛填充它下面的所有数据。该图像显示了错误,下面我给出了我希望完成的示例。

我确实查看了 CsvItemExporter,但不清楚如何从所有四个蜘蛛获取数据并导出数据。我已经阅读了文档,但仍然不知道如何将所有这些联系在一起。

TMP_FILE = os.path.join(os.path.dirname(sys.modules['products'].__file__), 'tmp/allproducts.csv')
FIELDS = ['url', 'company', 'location', 'price', 'make', 'model', 'year', 'height']

process = CrawlerProcess({
    'FEED_FORMAT': 'csv',
    'FEED_URI': TMP_FILE,
    'FEED_EXPORT_FIELDS': FIELDS,
})
process.crawl(Spider1)
process.crawl(Spider2)
process.start()

您有几个选择:

  1. 每个蜘蛛都写在自己的文件上,然后您将所有内容组合到一个单独的进程中作为结尾。
  2. 蜘蛛程序没有写入文件,而是有一个写入消息队列的项目管道,一个单独的进程使用队列中的消息并写入单个 CSV 文件。