Python 如何知道管道中的spider是否已关闭
我编写了以下管道,以便将提取的项目直接放入excel文件中,我运行了spider,没有任何错误,但是文件没有保存,我知道它缺少Python 如何知道管道中的spider是否已关闭,python,scrapy,Python,Scrapy,我编写了以下管道,以便将提取的项目直接放入excel文件中,我运行了spider,没有任何错误,但是文件没有保存,我知道它缺少workbook.close(),问题是我不知道将它放在代码中的何处 from datetime import datetime import xlsxwriter ordered_list=['Link','Price','Date','discount'] class guiPipeline(object): def __init__(self):
workbook.close()
,问题是我不知道将它放在代码中的何处
from datetime import datetime
import xlsxwriter
ordered_list=['Link','Price','Date','discount']
class guiPipeline(object):
def __init__(self):
now = datetime.now()
workbook = xlsxwriter.Workbook('data.xlsx')
self.worksheet = workbook.add_worksheet()
self.write_first_row()
self.index = 1
def process_item(self, item, spider):
for _key,_value in item.items():
col=ordered_list.index(_key)
self.worksheet.write(self.index,col,_value)
self.index+=1
return item
def write_first_row(self):
for header in ordered_list:
col=ordered_list.index(header)
self.worksheet.write(0,col,header)
这是我的管道,我只需要知道在spider完成时如何
关闭()
工作簿打开或关闭spider时可以调用一些方法:
您可以在以下文档中找到一个示例:
您还必须添加这个crawler.signals.connect(self.close\u spider,signals.spider\u closed)
到您的def\uuuu init\uuuu
如何连接到管道中关闭的“信号”卡盘?它工作时,您也可以在不连接信号的情况下执行关闭卡盘(self,spider)