我正在使用scrapy废弃网站
我写过蜘蛛并从页面中取出所有项目并保存到csv文件中,
现在我想保存scrapy采用的total execution time
来运行蜘蛛文件,
实际上,在蜘蛛执行完成后,当我们在终端时,它将显示一些结果
比如starttime, endtime
等......所以现在在我的程序中我需要计算scrapy运行蜘蛛并将总时间存储在某些地方所花费的总时间......
任何人都可以通过一个例子让我知道如何做到这一点........
提前致谢...........
答案 0 :(得分:4)
这可能很有用:
from scrapy.xlib.pydispatch import dispatcher
from scrapy import signals
from scrapy.stats import stats
from datetime import datetime
def handle_spider_closed(spider, reason):
print 'Spider closed:', spider.name, stats.get_stats(spider)
print 'Work time:', datetime.now() - stats.get_stats(spider)['start_time']
dispatcher.connect(handle_spider_closed, signals.spider_closed)
答案 1 :(得分:0)
我是一个初学者,但是我用一种更简单的方法做到了,我希望它是有道理的。
import datetime
然后声明两个全局变量,即 self.starting_time 和 self.ending_time 。
在Spider类的构造函数中,将开始时间设置为 self.starting_time = datetime.datetime.now()。
在那之后,使用封闭的方法找到结束点和开始点之间的差异。 即
def closed(self, response):
self.ending_time = datetime.datetime.now()
duration = self.ending_time - self.starting_time
print(duration)
由于蜘蛛在结束进程后不久就调用了close方法,因此就差不多了。