Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算运行scrapy的总时间_Python_Scrapy - Fatal编程技术网

Python 计算运行scrapy的总时间

Python 计算运行scrapy的总时间,python,scrapy,Python,Scrapy,嗨,我正在使用刮刮刮的网站 我编写了spider,获取了所有信息,并通过pipeline.py保存到csv文件中 pipeline.py代码 class Examplepipeline(object): def __init__(self): dispatcher.connect(self.spider_opened, signal=signals.spider_opened) dispatcher.connect(self.spider_closed,

嗨,我正在使用刮刮刮的网站

我编写了spider,获取了所有信息,并通过pipeline.py保存到csv文件中

pipeline.py代码

class Examplepipeline(object):

    def __init__(self):
        dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
        dispatcher.connect(self.spider_closed, signal=signals.spider_closed)

    def spider_opened(self, spider):
        log.msg("opened spider  %s at time %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))
        self.exampledotcomCsv = csv.writer(open("csv's/%s(%s).csv"% (spider.name,datetime.now().strftime("%d/%m/%Y,%H-%M-%S")), "wb"),
                   delimiter=',', quoting=csv.QUOTE_MINIMAL)
        self.exampledotcomCsv.writerow(['field1', 'field2','field3','field4'])           

    def process_item(self, item, spider):
            log.msg("Processsing item " + item['title'], level=log.DEBUG)
            self.brandCategoryCsv.writerow([item['field1'].encode('utf-8'),
                                    [i.encode('utf-8') for i in item['field2']],
                                    item['field3'].encode('utf-8'),
                                    [i.encode('utf-8') for i in item['field4']]
                                    ])
            return item 


    def spider_closed(self, spider):
        log.msg("closed spider %s at %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))
在上面的代码中,我可以获得spider的
开始时间和结束时间
,但在关闭spider后,我想计算并显示spider所花费的
总时间
,即开始时间和结束时间之间的差 那么我该怎么做呢,我们可以用spider_闭式方法编写这个函数

请告诉我这件事

为什么不:

def spider_opened(self, spider):
    spider.started_on = datetime.now()
    ...

def spider_closed(self, spider):
    work_time = datetime.now() - spider.started_on
    ...

感谢您的回复,spider\u closed方法如何从spider\u Open方法访问值……如果我正确理解了您的问题,在我的回答中我显示:
spider.started\u on=datetime.now()
-我们在spider对象中保留了一个值,在
spider_closed
中,我们从spider检索该值。嗨,沃沃鲁克,我知道这是一个新问题,但我也可以期待这个问题与此相关,实际上我们可以像上面所说的那样,在spider_closed方法中显示总时间,但有没有办法发送类似“刮片已完成”的邮件给我们的邮件。如果可能,请给我一个在scrapy运行后发送邮件的示例(不介意)代码。@Kouripm我没有给你的示例,但有一些文档: