我有一个scrapy项目,我正在尝试使用管道将数据导出到csv文件,我想将项目键打印为csv文件的第一行。我的管道代码如下(我可以在必要时发布更多代码,但我想这就足够了)。提前谢谢。
import csv
class CsvWriterPipeline(object):
def __init__(self):
self.csvwriter = csv.writer(open('items.csv','wb'))
def process_item(self,item,pfr):
self.csvwriter.writerow([item[key] for key in item.keys()])
return item
答案 0 :(得分:2)
如果您通过以下方式输出csv,则Scrapy已将标头添加到csv导出:
scrapy crawl spidername --output results.csv
如果你想在管道中手动完成,你可以在管道open_spider()方法中创建文件和写标题,这将在蜘蛛打开时执行其中的所有代码。
类似的东西:
def open_spider(self, spider):
header_keys = MyItem.fields.keys()
self.csvwriter.writerow(header_keys)