1. 程式人生 > >Scrapy用pipelines把字典儲存為csv格式

Scrapy用pipelines把字典儲存為csv格式

import csv

class MyProjectPipeline(object):
# 儲存為csv格式
def __init__(self):
# 開啟檔案,指定方式為寫,利用第3個引數把csv寫資料時產生的空行消除
self.f = open("myproject.csv","a",newline="")
# 設定檔案第一行的欄位名,注意要跟spider傳過來的字典key名稱相同
self.fieldnames = ["m_num","m_name","s_name","i_date","l_work","m_style","c_work"]
# 指定檔案的寫入方式為csv字典寫入,引數1為指定具體檔案,引數2為指定欄位名
self.writer = csv.DictWriter(self.f, fieldnames=self.fieldnames)
# 寫入第一行欄位名,因為只要寫入一次,所以檔案放在__init__裡面
self.writer.writeheader()

def process_item(self, item, spider):
# 寫入spider傳過來的具體數值
self.writer.writerow(item)
# 寫入完返回
return item

def close(self,spider):
self.f.close()