python - 计算运行scrapy的总时间

标签 python scrapy

嗨,我正在使用 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, 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_close方法中编写这个功能吗?

请让我知道这一点。

最佳答案

为什么不:

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

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

关于python - 计算运行scrapy的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357925/

相关文章:

python - SQLAlchemy 单表继承的一对多关系 - 声明式

python - 如何为 Python itertools.ifilter 函数提供额外的参数?

python 在 mac os 10.10.1 上安装 lxml

python - 引用错误 : "something" is not defined in QML

python - 将查询结果重定向到另一个页面 flask

python - Scrapy - 如何识别已经抓取的网址

python - 如何获取div内的文字

python - 如何使用scrapy限制spider爬取某些xPath

python - 由于 setuptools 错误,无法在 virtualenv 中安装 pyvisa

python - mysql.connector.errors.InterfaceError : 2003: Can't connect to MySQL server on '127.0.0.1:3306' on Scrapinghub