具有多个蜘蛛和 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()
您有几个选择:
- 每个蜘蛛都写在自己的文件上,然后您将所有内容组合到一个单独的进程中作为结尾。
- 蜘蛛程序没有写入文件,而是有一个写入消息队列的项目管道,一个单独的进程使用队列中的消息并写入单个 CSV 文件。
我是运行四只蜘蛛,正在将数据导出到一个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()
您有几个选择:
- 每个蜘蛛都写在自己的文件上,然后您将所有内容组合到一个单独的进程中作为结尾。
- 蜘蛛程序没有写入文件,而是有一个写入消息队列的项目管道,一个单独的进程使用队列中的消息并写入单个 CSV 文件。